SSH経由でLAN内の別のUbuntuマシンに接続できます。 その後、PCの両方に私がインストールされています openssh-サーバー しかし、別のUbuntuコンピュータから私はSSH経由で自分のPCに接続することはできませんし、私はこのエラーが発生しました:
ホストキーの検証に失敗しました。..
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
で発生する可能性があります。