SSH接続の問題"ホストキーの検証に失敗しました。.."エラー

SSH経由でLAN内の別のUbuntuマシンに接続できます。 その後、PCの両方に私がインストールされています openssh-サーバー しかし、別のUbuntuコンピュータから私はSSH経由で自分のPCに接続することはできませんし、私はこのエラーが発生しました:

ホストキーの検証に失敗しました。..

「ホスト鍵検証に失敗しました」とは、ホスト鍵の検証に失敗した ホスト リモートホストのキーが変更されました。

SSHは、リモートホストのホストキーを次の場所に格納します ~/.ssh/known_hosts. そのテキストファイルを手動で編集して古いキーを削除するか(エラーメッセージに行番号が表示されます)、次のように使用できます

ssh-keygen -R hostname

から manページ:

-Rホスト名
Known_hostsファイルからhostnameに属するすべてのキーを削除します。 このオプションはハッシュ化されたホストを削除するのに便利です。

(私は答えから学んだSSHから特定のホストキーを削除することは可能ですか?).

Prompt-to-add-hostkeyへの対話的なアクセスがない特定のリモート/スクリプトの状況で実行している場合は、次のように回避してください:

$ ssh -o StrictHostKeyChecking=no user@something.example.com uptime

警告:永久に追加された'something.example.com10.11.12.13'(RSA)を既知のホストのリストに追加します。

また、シリアルコンソールで作業しているときに、上記のコマンドを冗長モードで確認する状況があることがあります -v あなたが表示されます /dev/tty それは存在しないが、存在しない。

ssh -v user@hostname

上記の場合は削除するだけです /dev/tty のシンボリックリンクを作成します /dev/ttyS0/dev/tty.

rm /dev/ttyln -s /dev/ttyS0 /dev/tty

別の方法として、次のように追加します id_rsa.pub リモートの場所に、パスワードが要求されず、ログインアクセスを取得します。

私の場合、これはudevの問題によって引き起こされました-何もありませんでした /dev/tty デバイスノード。 私のための解決策はただでした:

sudo mknod -m 666 /dev/tty c 5 0

端末で:

ssh -o StrictHostKeyChecking=no -i YourPublicKey.pem user@example.com uptime

次のようなメッセージが表示されます:

Warning: Permanently added 'example.com, XX.XXX.XXX.XX' (ECDSA) to the list of known hosts. 00:47:37 up 3 min,  0 users,  load average: 0.00, 0.00, 0.00

次に、通常どおりEC2に接続します:

ssh -i YourPublickey.pem user@example.com

Sshが接続を続行することを確認するときに「はい」と入力するだけでよい場合があります。

うなり声のように。

The authenticity of host 'xxx' can't be established.ECDSA key fingerprint is yyy.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'xxx' (ECDSA) to the list of known hosts.Enter passphrase for key '/Users/ysy/.ssh/id_rsa':

次に、パスワードを入力します。

"接続を続けてもよろしいですか(はい/いいえ)"に注意してください。 はい。". 入力する必要がありますyes、入力しないでください。

ターゲットホストのrsaキーをソースホストに配置する必要があります /home/user/.ssh/known_hosts ターゲット上でこれを実行することによって

ssh-keyscan -t rsa @targethost

まあ、それは単に2番目のubuntuがパスワードではなくキーでの接続を必要とするからです。

私はあなたが使うことをお勧めします sudo dpkg-reconfigure openssh-server お使いのpc上で、それが正常に動作するはずです。 Opensshの設定をリセットし、デフォルトのパスワード認証に戻る必要があります。

第二の可能性は、あなたのPCにあなたの他のubuntuのためのキーがすでにあり、それが変更されたため、もはや認識されなくなったということです。 この場合、ファイルを編集する必要があります .ssh/authorized_keys あなたのubuntuを識別する問題のある行を削除するには。

これは古いスレッドであり、私はちょうどこの答えに遭遇しました、私はこれを解決するために私がしたことを追加します。

ssh-keygen -f "/home/USER/.ssh/known_hosts" -R HOSTNAME

私はちょうどそれが私に投げたエラーメッセージを見て、それはホストのリストからそれを削除するためにそのコマンドを実行すると言いました。 その後、私は次のことをしました:

ssh-copy-id HOSTNAME

私はサーバーにsshすることができるまで、そこからのプロンプトに従ったよりも。

あなたはこの方法であなたのキーを変更する必要があります:あなたの与えられたエラーから、どのホストキーが変更されたかを見つけます。/Users/user-name/でEcdsaキーをssh/known_hosts:5said5番目のキーが変更されたので、これを行います:

sed -i '5d' ~/.ssh/known_hosts

注意:あなたはrootであるか、sudoの権限を持っている必要があります。

Dóあなたは、ホスト名やIPアドレスを使用しますか?

似ていませんが、私は同じエラーが発生しましたが、別の問題のために:ubuntu - Managing multiple servers behind a firewall with SSH reverse tunnel - Server Fault

これはUbuntu固有の問題ではありません。 コマンドラインから任意のsshで発生する可能性があります。