22

私は Capistrano と Ruby にまったく慣れていないので、基本的な展開をセットアップできないようです。cap deploy:check を実行するたびに、次のエラーが表示されます。

サーバー: ["domain.com"] 接続に失敗しました: me@domain.com (Net::SSH::HostKeyMismatch: 指紋 0c:de:d4: 1b:e9:64:83:3a:8b:d7:c3: 42:98:5b:5d:8c は "[domain.com]:22,[62.39.11.2]:22" に一致しません)

私の deploy.db は次のようになります。

set :stages, %w(production staging)
set :default_stage, "staging"
require 'capistrano/ext/multistage'

set :application, "captest" # TODO
set :repository, "git@bitbucket.org:jy312/captest.git" # TODO
set :scm, :git
set :use_sudo, false

ssh_options[:forward_agent] = true
default_run_options[:pty] = true
set :deploy_via, :remote_cache
set :copy_exclude, [".git", ".DS_Store", ".gitignore", ".gitmodules"]
set :git_enable_submodules, 1

ローカル コンピューターの公開キー (id_rsa.pub) をサーバーの既知のホストのリストに追加しようとしましたが、うまくいきませんでした。

どんな提案でも大歓迎です。助けてくれてありがとう。

4

5 に答える 5

46

宛先サーバーのフィンガープリントがローカルknown_hostsファイルの内容と一致しません。known_hostsローカルファイルの既存のエントリを削除します。

また、SSH の問題であるため、Ruby を経由する代わりに、サーバーに直接 SSH 接続して問題を修正することもできます。

于 2013-08-15T18:29:59.517 に答える
10

または、次のように書き換えます(サーバーのユーザー名とIPを変更します):

$ ssh-keygen -f "/home/USERNAME/.ssh/known_hosts" -R 178.X.X.X

次にサーバーに入ります

$ ssh user@178.X.X.X

そして答えるyes

デプロイを再試行

幸運を ;)

于 2014-10-31T09:54:19.187 に答える
5

実稼働システムには適していませんが、ローカル開発環境へのデプロイ中にこの問題に直面した場合は、厳密なホスト キー検証を無視するように Capistrano に指示することを検討できます。

deploy.rb

set :ssh_options, paranoid: false

https://github.com/net-ssh/net-ssh/blob/e90551a4672587e294b47f824a401550f55184cc/lib/net/ssh.rb#L160

于 2016-12-08T21:33:03.763 に答える
5

シナリオ: ソース マシンからターゲット マシンへの SSH

上記のシナリオで Net::SSH::HostKeyMismatch がスローされる場合は、以下を実行します。

1) Login to source machine and sudo su <User>
2) ssh destination machine
3) in step2, HostKeyMismatch error will be displayed and also the known hosts location.

or

2) cd ~
3) cd .ssh
4) vim known_hosts
5) clear the content of the file and save and quit (using command - :wq)

これで問題は解決するはずです。

于 2015-04-29T10:31:22.327 に答える