2012-05-05 19:05:56 +0000 2012-05-05 19:05:56 +0000
315
315

ECDSAホストキーに関する警告を修正する方法

Ubuntuサーバ上でssh-copy-id myuser@myserverでパスワードレスSSHを設定しようとしていますが、エラーが出ます:

Warning: the ECDSA host key for ‘myserver’ differs from the key for the IP address ‘192.168.1.123’

これは何が原因で発生しているのでしょうか、また、どうすれば修正できますか?リモートマシン上の .ssh ディレクトリを削除し、ローカルで ssh-keygen -R "myserver" を実行してみましたが、エラーは解決しません。

回答 (13)

459
459
459
2012-05-05 20:20:21 +0000

ローカルマシン上の192.168.1.123のキャッシュされたキーを削除する:

ssh-keygen -R 192.168.1.123
69
69
69
2014-03-11 18:52:18 +0000

私の場合、ssh-keygen -R ...では警告は修正されませんでした。私は以下のような余分な情報を持っていました:

Offending key for IP in /home/myuser/.ssh/known_hosts:8
Matching host key in /home/myuser/.ssh/known_hosts:24

私は単に~/.ssh/known_hostsを手動で編集し、8行目(「問題のあるキー」)を削除しました。再接続を試みたところ、ホストは恒久的に追加され、その後はすべて問題ありませんでした!

19
19
19
2014-01-16 08:12:11 +0000

私は LAN コンピュータと 2 つの webhosting アカウント間で多くの ssh を使用していますので、どこで何が間違っていたのかを確認するために ssh -v を使用して認証の問題を含めて、いろいろな種類の SSH の問題を解決してきました。

この問題を解決したばかりで答えに満足していなかったので、私自身が本当に “なぜ "なのかを知りたいと思いました。以前は全てのサーバOSがUbuntuだったのですが、今回はDebianに変更しました(パーミッションに微妙な違いがあると思われます)。

全てのOSがUbuntuで、サーバのOSを再インストールした時に、最初にSSHで入った時に、このような警告が出て、上記の静かな警告よりも好きです!

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
06:ea:f1:f8:db:75:5c:0c:af:15:d7:99:2d:ef:08:2a.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending key in /home/user/.ssh/known_hosts:4
RSA host key for domain.com has changed and you have requested strict checking.
Host key verification failed.

その後、~/. ssh/known_hosts を開いて、その行を削除して、再接続するとこうなります。

chris@home ~ $ ssh work
The authenticity of host '[work]:11122 ([99.85.243.208]:11122)' can't be established.
ECDSA key fingerprint is 56:6d:13:be:fe:a0:29:ca:53:da:23:d6:1d:36:dd:c5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[work]:11122 ([99.85.243.208]:11122)' (ECDSA) to the list of known hosts.
Linux rock 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64

そう、そうですね、おそらく、ホストは最近 ecdsa 鍵を使い始めたのでしょう、最近の Ubuntu の変化に基づいて、私はアップデートのせいにするでしょう。

私は security.SE q/a on ecdsa を読んで、すでに sshd_config 私の新しい Debian サーバからその行を削除しています。(そして service ssh restart を実行しました)

7
7
7
2014-01-16 09:06:57 +0000

ダイナミックアドレッシングを使用している場合、IPアドレスが常に変化するため、毎回プロンプトが発生します。一度だけキーを追加するだけで済むように、静的IPを使用するようにしてください。

6
6
6
2015-05-14 18:16:42 +0000

ssh-keygen -f “/root/.ssh/known_hosts” -R 192.168.1.123

これは known_hosts.old の下にある既存の鍵を置き換えて、新しい鍵を作成します。この解決策は、同じシナリオで動作しました。

4
4
4
2018-03-15 12:23:28 +0000

以下の行を ~/.ssh/config に追加して、すべての .local アドレスに対する厳格なホストチェックを無効にしました。(DHCP アドレスの割り当てでは、ローカルマシンの ip アドレスは常に変化しています)

host *.local
    StrictHostKeyChecking no

まだ警告が出ますが、これは私には問題ありません。

2
2
2
2014-10-21 09:17:22 +0000

Czy używasz tego samego użytkownika do połączenia?

Jeśli jesteś zalogowany do lokalnego komputera jak użytkownik Jane i połączyłeś się z serwerem B jak użytkownik Adolf@B i wszystko jest OK, nie oznacza to, że wszystko jest OK, jeśli jesteś zalogowany do lokalnego komputera jak użytkownik Jane i połączyłeś się z serwerem B jak użytkownik Adolf@B.

Jeśli chcesz zalogować się na serwerze B jako użytkownik Beda z PC A bez hasła, spróbuj tej komendy, wszystkie z PC A:

ssh-keygen -t rsa

Ta komenda generuje klucz i przechowuje go w pliku. Proszę pozostawić passphrase puste.

ssh Beda@B mkdir -p .ssh

To polecenie tworzy katalog, jeśli jeszcze nie istnieje. W przeciwnym razie nie należy drukować komunikatu o błędzie.

cd ~/.ssh

Polecenie to zmienia katalog na katalog domowy użytkownika ./ssh.

cat id_rsa.pub | ssh Beda@B 'cat >> .ssh/authorized_keys'

Polecenie to drukuje plik id_rsa. pub (twój klucz publiczny) na autoryzowane klucze na serwerze.

WAŻNE: Beda to twoja nazwa użytkownika na serwerze, z którym się łączysz, B to twój IP serwera.

Teraz możesz połączyć się z serwerem B bez hasła lub frazy hasła:

ssh Beda@B
1
1
1
2012-08-07 15:42:41 +0000

質問です。何が原因なのでしょうか?

  • ssh サーバのホスト鍵が変わったのですね。
  • 誰かが sshd ホスト鍵を再生成したり、交換したりしたのでしょうか?
  • myserver の IP アドレスが変更されたので、別のホストがその IP アドレスに応答するようになったのでしょうか?

質問: … そして、どうすれば直るのでしょうか?

他の人がすでに回答しているように、アカウントにキャッシュされている myserver のキャッシュされた ECDSA ホスト鍵を削除してください。

1
1
1
2012-12-20 16:47:41 +0000

基本的には、そのホストの RSA 鍵と ECDSA 鍵の両方を削除してから、ssh-keyscan を使って、このコンフリクトを起こさないようにして、known_hosts ファイルに戻したいと思います。私が同じ問題を抱えていたときには、これで解決しました。

1
1
1
2017-08-25 12:43:26 +0000

このエラーは長い間私を悩ませ続けました。何らかの理由で、それは私が

ssh host

または ssh host.domain https://askubuntu.com/questions/87449/how-to-disable-strict-host-key-checking-in-ssh

を行うかどうかの違いを作った後、設定ファイルを変更するオプションを私に指摘しました。プロセスを自動化するためにそこにある私のスクリプト https://askubuntu.com/a/949731/129227 を参照してください。

0
0
0
2015-05-18 23:26:58 +0000

Chromebook でこの問題を解決するには、Secure Shell をアンインストールして再インストールする必要があります。それは魅力的なように動作しました。

0
0
0
2020-02-23 01:54:19 +0000

私の側では、これは新しい(ssh以上の)クライアントのOpenSSH_7.9p1バグと思われるものが原因で発生する。そして、この誤解を招くようなメッセージを表示します!

これを解決する良い方法を私は知りませんが、私が見つけた唯一の回避策は、クライアントが “より安全な新しいecdsa鍵 "を再学習できるように、すべての "良いが古いrsa鍵 "を削除することです。従って:

  1. 最初のステップはすべてのよい古いRSAの鍵を取除くことである( Warning! これはMitMに対する保護を失う ):

  2. 第2のステップは、その後、すべてのホストキーを再学習することであるrsaを使用して再び各IPに接続することによって手動で行われなければなりません。それは上記のように同じIPです! だから、(既知の)IPの(良い)キーが突然自分自身を攻撃しているように見えます(そうではありません、ecdsaクライアントが2つの互換性のないキーを混ぜているので、以下を参照してください)。

今、私たちはそれを修正しようとします:

$ sftp test@136.243.197.100
Connected to test@136.243.197.100
sftp> 

$ sftp test@valentin.hilbig.de
Connected to test@valentin.hilbig.de.
sftp>

もう一度やってみましょう:

$ sftp test@gcopy.net
Warning: the ECDSA host key for 'gcopy.net' differs from the key for the IP address '136.243.197.100'
Offending key for IP in /home/test/.ssh/known_hosts:45
Matching host key in /home/test/.ssh/known_hosts:44
Are you sure you want to continue connecting (yes/no)?

WTF? ここで何が起こったのでしょうか?サーバーから学んだ新しい新鮮なキーはまた失敗するか。しかも問題はさらに横並びに!?

$ ssh-keygen -R 136.243.197.100
# Host 136.243.197.100 found: line 45
/home/test/.ssh/known_hosts updated.
Original contents retained as /home/test/.ssh/known_hosts.old
$ sftp test@gcopy.net
Warning: Permanently added the ECDSA host key for IP address '136.243.197.100' to the list of known hosts.
Connected to test@gcopy.net.

$ sftp test@valentin.hilbig.de
Warning: the RSA host key for 'valentin.hilbig.de' differs from the key for the IP address '136.243.197.100'
Offending key for IP in /home/test/.ssh/known_hosts:45
Matching host key in /home/test/.ssh/known_hosts:10
Are you sure you want to continue connecting (yes/no)?

いや、鍵でもサーバーでもありません。全てが正しいのです!

正しい鍵の確認に失敗しているのは、sshクライアントなのです!

sshのエントリは、今までの鍵の確認に失敗しています。クライアントによってサーバーから引き出されたキーはタイプが007であるのに対し、sshのエントリー45はタイプが007のキーを持っています(そのため、他のキーとは一致しません!)。それは複数のバリアントに存在するホストキーに対処することができません! どうすればいいのでしょうか?

しかし、手動ではありますが、不器用な回避策があります:

手動でタイプknown_hostsの古い鍵の痕跡をすべて削除しなければなりません。問題のキーは出力に示されていますが、直接問題としてマークされていません:

$ sftp -v test@valentin.hilbig.de

チェック: debug1: kex: host key algorithm: rsa-sha2-512

を与えます $ sftp -v test@gcopy.net

だからここで matching ホストキーは問題のあるものであり、問題のあるキーは保持されなければならない右のものです! だから間違った(一致する)1つを取除きましょう:

debug1: kex: host key algorithm: ecdsa-sha2-nistp256

今再度点検して下さい:

Warning: the RSA host key for 'valentin.hilbig.de' differs from the key for the IP address '136.243.197.100'
Offending key for IP in /home/test/.ssh/known_hosts:45
Matching host key in /home/test/.ssh/known_hosts:10

YAY! 問題は最終的に消えた。しかし、ecdsa-sha2-nistp256のいくつかの100のエントリでは、この "ソリューション "は本当に主要なPITAになります(そして、エルム街のエラーが発生しやすいセキュリティの悪夢。YMMV.)。

0
0
0
2017-07-24 07:55:39 +0000

以下は、Chrome OS 上で既知のホストのフィンガープリント (known_hosts ファイルから) を削除する方法です。例えば、以下の行の問題のあるインデックスは 7 です :

Offending ECDSA key in /.ssh/known_hosts:7

Secure Shell ウィンドウの JavaScript コンソール (CTRL+Shift+J) を開き、次のように入力します。