web-dev-qa-db-ja.com

sshリモートホストIDが変更されました

サーバーを再インストールしたところ、次のメッセージが表示されました。 

[user@hostname ~]$ ssh root@pong
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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 a Host key has just been changed.
The fingerprint for the RSA key sent by the remote Host is
6e:45:f9:a8:af:38:3d:a1:a5:c7:76:1d:02:f8:77:00.
Please contact your system administrator.
Add correct Host key in /home/hostname /.ssh/known_hosts to get rid of this message.
Offending RSA key in /var/lib/sss/pubconf/known_hosts:4
RSA Host key for pong has changed and you have requested strict checking.
Host key verification failed.

私はインターネット上で見つけたさまざまな解決策を試しました。私のknown_hostsファイル(通常~/.ssh/known_hostsにあります)は/var/lib/sss/pubconf/known_hostsにあります。編集しようとしましたが、1つの状態のままです。 ipa-client をインストールし、Fedora 19をインストールしました。どうすればこの警告を解決できますか?

これまでに答えた答えはすべて、Freeipaがインストールされていない場合にのみ機能します。

下のコメントでfreeipaに対する正しい答えはadrin here から。

469

これが最も簡単な解決策です。 

ssh-keygen -R <Host>

例えば、

ssh-keygen -R 192.168.3.10

ssh-keygenのmanページから

  • -R hostnameホスト名に属するすべてのキーをknown_hostsファイルから削除します。このオプションはハッシュされたホストを削除するのに便利です(上記の-Hオプションを参照)。
879
Kashif Nazar

つかいます

ssh-keygen -R hostname

IPアドレス/ホスト名の例は次のようになります。

ssh-keygen -R 168.9.9.2

これにより、ホストの問題をknown_hostsから更新します。

166
ravi ranjan

私はデジタルオーシャンUbuntuの画像を再作成した後、私はこれと同じエラーが発生しました。私は[IP_ADDRESS]の代わりに私のサーバーIPで次のコマンドを使いました

ssh-keygen -R [IP_ADDRESS]
102
Ben

サーバーを再インストールすると、そのIDが変わり、このメッセージが表示されます。 Sshは、自分が接続しているサーバーを変更したのか、すべての通信を傍受するためにネットワークに中間サーバーを追加したのかを知ることができません。

関連するエントリを削除して、known_hostsからキーを削除するだけです。

sed '4d' -i /var/lib/sss/pubconf/known_hosts

4dOffending RSA ...known_hosts:4のアカウントにあります

33
mockinterface

スレッジハンマーは、知られているすべてのホストを一気に削除することです。

rm ~/.ssh/known_hosts

私達がジャンプボックスからの短命のサーバーの小さいサブネットを使用し、頻繁に同じsshキーを共有するサーバーの内部IPアドレスの再利用をしているので、私はこれに立ち向かいます。

29
Andy Hayden

問題は、以前にリモートコンピュータへのSSH接続を受け入れたことと、最後に接続してからリモートコンピュータのデジタル指紋またはSHA256ハッシュキーが変更されたことです。そのため、もう一度SSHを使用しようとするか、githubを使用してコードを引き出すと(これもSSHを使用します)、エラーが発生します。どうして?以前と同じリモートコンピュータアドレスを使用していますが、リモートコンピュータが異なるフィンガープリントで応答しているためです。したがって、以前に接続したコンピュータを誰かがなりすましている可能性があります。これはセキュリティ上の問題です。 

リモートコンピュータが危険にさらされたり、ハッキングされたり、偽装されたりしていないことが100%確信できる場合は、リモートコンピュータのknown_hostsファイルのエントリを削除するだけです。接続時にSHA256フィンガープリントIDとの不一致がなくなるため、これで問題は解決します。

Macでは、ここで私がやったことです:

1)RSA Host key for servername:port has changed and you have requested strict checking.と出力される出力行を見つけます。そのログ出力からservernameと潜在的にportの両方が必要です。

2)SSHの既知のホストファイルcp /Users/yourmacusername/.ssh/known_hosts /Users/yourmacusername/.ssh/known_hosts.bakをバックアップします。

3)コンピュータの古い指紋が保存されている行を見つけて削除します。手順1のサーバー名とポートを使用して、問題のある特定のリモートコンピューターのフィンガープリントを検索できます。 nano /Users/yourmacusername/.ssh/known_hosts

4)Ctrlキーを押しながらXキーを押して終了し、Yキーを押して変更を保存します。

ここでssh -p port servernameと入力すると、そのコンピュータに最初にSSHで接続しようとしたときに行った元のプロンプトが表示されます。その後、そのリモートコンピュータの更新されたSHA256フィンガープリントをknown_hostsファイルに保存するオプションが与えられます。 SSHをポート22経由で使用している場合は、-p引数は不要です。

あなたが元のknown_hostsファイルを復元することができる問題:cp /Users/yourmacusername/.ssh/known_hosts.bak /Users/yourmacusername/.ssh/known_hosts

22
anon58192932

すでに述べたように、ssh-keygenを使用してください。

ssh-keygen -R pong

また、ホスト鍵チェックを一時的にオフにすることを検討してください。

ssh -oStrictHostKeyChecking=no root@pong
12
Stephen Quan

私はmockinterfaceの解を使いましたが、sed -iはあまりうまくいきませんでした vimを使って手で行を削除することで解決しました。

Sudo vim /var/lib/sss/pubconf/known_hosts

他のテキストエディタを使用することもできますが、おそらく管理者権限を表示する必要があります。

11
3nrique0

私のために働く!

エラー: / var/lib/sss/pubconf/known_hosts内の問題のあるRSAキー: 4

これは、行番号に問題のあるRSAキーがあることを示しています。 4

解決策1

1. vi /var/lib/sss/pubconf/known_hosts

2. remove line no: 4

3. Save and Exit, and Retry

解決策2:

ssh-keygen -R "you server hostname or ip"

_または_

解決策3:

sed -i '4d' /root/.ssh/known_hosts

これにより、4th/root/.ssh/known_hosts行が削除されます(-i)。

11
Sahil Gulati

これは、リモートコンピュータの設定が変更されたためです。そのためにあなたの現在の鍵を削除してください。

vim /root/.ssh/known_hosts 

接続しているIPの行を削除します。

7
miota85

ここでの他の答えは良くてうまくいっています、とにかく、私は~/.ssh/known_hostsを削除することによって問題を解決しました。これで確かに問題は解決しますが、おそらくそれは最善の方法ではありません。

4
tjespe

次のようにして、known_hostsからそのエントリを削除します。

ssh-keygen -R *ip_address_or_hostname*

これにより、 known_hosts ファイルから問題のあるIPまたはホスト名が削除され、再接続が試行されます。

Manページから:

-R hostname
hostnameに属するすべてのキーをknown_hostsファイルから削除します。このオプションはハッシュされたホストを削除するのに便利です(上記の-Hオプションを参照)。

4

私の場合は、I 以前に同じip を持つマシンとSSH接続していて(192.152.51.10と言った)、システムがRSAキー(/home/user_name/.ssh/known_hostsに格納されている)を考慮していたためミスマッチを引き起こした前のホストの。

解決 この問題を解決するには、 ip 192.152.51.10 のために以前に保存したRSAキーを削除する必要があります。

ssh-keygen -f "/home/user_name/.ssh/known_hosts" -R 192.152.51.10
4
Prateek Joshi

Macユーザーの場合は、-Rコマンドのssh-keygenフラグを使用できます。簡単な例:

ssh-keygen -R THE_IP_ADDRESS

THE_IP_ADDRESSはあなたがSSHで接続しようとしているIPです。そして、あなたはうまく接続することができます。

3
Nick Rameau

コマンドを使用してポート2222で実行中のdocker containerに接続しようとしたときにエラーが発生した場合

mian@tdowrick2~$ ssh pos@localhost -p 2222

それからこの問題を解決するために、あなたのローカルコンピュータ(すなわちコンテナではないホストマシン)でcd ~/.ssh/に行き、テキストエディタでknown_hostsファイルを開いてください。 [localhost]:2222で始まる行を削除してファイルを保存します。もう一度sshを試してください。 

mian@tdowrick2~$ ssh pos@localhost -p 2222

エラーは消えますが、コンテナを再起動するたびにエラーが発生します。

2

唯一のクライアント側の問題(ipのための重複キー):

変形を解決する:

1つのIPをクリアする(デフォルトポート22):

ssh-keygen -f -R 7.7.7.7

1つのIP( デフォルト以外 port)の場合:

ssh-keygen -f -R 7.7.7.7:333

すべてのipsを高速クリア

cd ~; rm .ssh/known_hosts

7.7.7.7 - サーバーのIP接続をSSHで接続する

333 - 非標準ポート

2
Fortran

非常に簡単な解決策:/home/hostname /.ssh/known_hostsを編集し、4行を削除して保存します。それからssh root@pongを再度実行すると、次のようなメッセージが表示されます。Are you sure you want to continue connecting (yes/no)? yes、単にyesを出力します。

これは私のために働きます。

ちなみに、あなたが何らかの問題を抱えているなら、最初にヒントを読んでください、それは助けになるでしょう。

2
Bluce Liu

場合によっては、何らかの理由でサーバーを再インストールする必要があります。sshで接続すると、サーバーがIDが変更されたと言うことがわかります。 攻撃ではないであるが、システムを復元したことがわかっている場合は、ssh-keygenを使用して、known_hostsから古いIDを削除できます。

ssh-keygen -R <Host/ip:hostname>
root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old

再度接続するとき、新しい指紋を検証するように求められます:

ssh -l user <Host/ip:hostname>
The authenticity of Host '<Host/ip:hostname>' can't 
be established.
RSA key fingerprint is 3f:3d:a0:bb:59:24:35:6d:e5:a0:1a:3f:9c:86:81:90.
Are you sure you want to continue connecting (yes/no)? yes
1
BrennQuin

私は自分のマシンに同じエラーがあり、authorized_keysknown_hostsファイルをクリアしましたが、その後はうまくいきました。

1
GoingMyWay

私の解決策は:

  1. vi ~/.ssh/known_hosts
  2. 接続したいIPが含まれている行を削除します。

これはknown_hostsをすべて削除するよりはましです。

1
aircraft

私はこの問題を抱えていました、そしてその理由は非常に単純です、私はSSHログインに重複したIPアドレスを持っています、従ってこの問題を修正した後、すべてが解決されます。

1
Fan

このコマンドを使います。

truncate -s 0 /home/SYSTEM_NAME/.ssh/known_hosts
1
Muktesh Kumar

ただしてください:

cd /home/user/.ssh/ - >ここでuserはあなたのユーザー名、例えば/home/jon/になります。 

それから 

gedit known_hosts &をクリックして、その中の内容を削除します。 

今度はssh、またうまくいくはずです。 

0
ThePredator

UBUNTU(Linux)で私の解決策:

1. /home/YOUR_USERNAME/.ssh/known_hostsにある「known_hosts」ファイルからコンテンツを削除する必要があります。 

2. "ssh-keygen -t rsa -C"のような新しいsshキーを作成します。[email protected] "-b 4096"

3.新しいsshキーをgitリポジトリ(私の場合はgitlab)のSSHキーにコピーして貼り付けます。

わたしにはできる !

0
Dionis Oros

溶液:

1-「$ HOME/.ssh/known_hosts」から、接続が不可能なホストを指す行を削除します。

2-次のコマンドを実行します。ssh-keygen -R "IP_ADDRESSorHOSTNAME"( "IP_ADDRESSorHOSTNAME"をあなたのコピー先のIPアドレスまたはコピー先のホスト名に置き換えてください)

3 - ssh接続を再試行します(失敗した場合は、.sshディレクトリの許可を確認してください、700である必要があります)。 

0
DarkSkieS