web-dev-qa-db-ja.com

Capistranoエラー-Net :: SSH :: HostKeyMismatch

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

サーバー:["domain.com"]接続に失敗しました:[email protected](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, "[email protected]: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)をサーバー上のknown_hostsのリストに追加しようとしましたが、うまくいきませんでした。

任意の提案をいただければ幸いです。助けてくれてありがとう。

19
jg314

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

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

38
Musannif Zahir

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

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

次にサーバーに入ります

$ ssh [email protected]

と答えるyes

デプロイを再試行します

幸運を ;)

9
itsnikolay

シナリオ:ソースマシンから宛先マシンへの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)

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

5
Raja

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

deploy.rb

set :ssh_options, paranoid: false

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

3
s01ipsist