サーバーを再インストールしたところ、次のメッセージが表示されました。
[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 から。
これが最も簡単な解決策です。
ssh-keygen -R <Host>
例えば、
ssh-keygen -R 192.168.3.10
-R hostname
ホスト名に属するすべてのキーをknown_hostsファイルから削除します。このオプションはハッシュされたホストを削除するのに便利です(上記の-Hオプションを参照)。つかいます
ssh-keygen -R hostname
IPアドレス/ホスト名の例は次のようになります。
ssh-keygen -R 168.9.9.2
これにより、ホストの問題をknown_hostsから更新します。
私はデジタルオーシャンUbuntuの画像を再作成した後、私はこれと同じエラーが発生しました。私は[IP_ADDRESS]
の代わりに私のサーバーIPで次のコマンドを使いました
ssh-keygen -R [IP_ADDRESS]
サーバーを再インストールすると、そのIDが変わり、このメッセージが表示されます。 Sshは、自分が接続しているサーバーを変更したのか、すべての通信を傍受するためにネットワークに中間サーバーを追加したのかを知ることができません。
関連するエントリを削除して、known_hostsからキーを削除するだけです。
sed '4d' -i /var/lib/sss/pubconf/known_hosts
4d
はOffending RSA ...known_hosts:4
のアカウントにあります
スレッジハンマーは、知られているすべてのホストを一気に削除することです。
rm ~/.ssh/known_hosts
私達がジャンプボックスからの短命のサーバーの小さいサブネットを使用し、頻繁に同じsshキーを共有するサーバーの内部IPアドレスの再利用をしているので、私はこれに立ち向かいます。
問題は、以前にリモートコンピュータへの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
すでに述べたように、ssh-keygen
を使用してください。
ssh-keygen -R pong
また、ホスト鍵チェックを一時的にオフにすることを検討してください。
ssh -oStrictHostKeyChecking=no root@pong
私はmockinterfaceの解を使いましたが、sed -iはあまりうまくいきませんでした vimを使って手で行を削除することで解決しました。
Sudo vim /var/lib/sss/pubconf/known_hosts
他のテキストエディタを使用することもできますが、おそらく管理者権限を表示する必要があります。
私のために働く!
エラー: / 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
)。
これは、リモートコンピュータの設定が変更されたためです。そのためにあなたの現在の鍵を削除してください。
vim /root/.ssh/known_hosts
接続しているIPの行を削除します。
ここでの他の答えは良くてうまくいっています、とにかく、私は~/.ssh/known_hosts
を削除することによって問題を解決しました。これで確かに問題は解決しますが、おそらくそれは最善の方法ではありません。
次のようにして、known_hostsからそのエントリを削除します。
ssh-keygen -R *ip_address_or_hostname*
これにより、 known_hosts ファイルから問題のあるIPまたはホスト名が削除され、再接続が試行されます。
Manページから:
-R hostname
hostnameに属するすべてのキーをknown_hostsファイルから削除します。このオプションはハッシュされたホストを削除するのに便利です(上記の-Hオプションを参照)。
私の場合は、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
Macユーザーの場合は、-R
コマンドのssh-keygen
フラグを使用できます。簡単な例:
ssh-keygen -R THE_IP_ADDRESS
THE_IP_ADDRESS
はあなたがSSHで接続しようとしているIPです。そして、あなたはうまく接続することができます。
コマンドを使用してポート2222で実行中のdocker containerに接続しようとしたときにエラーが発生した場合
mian@tdowrick2~$ ssh pos@localhost -p 2222
それからこの問題を解決するために、あなたのローカルコンピュータ(すなわちコンテナではないホストマシン)でcd ~/.ssh/
に行き、テキストエディタでknown_hosts
ファイルを開いてください。 [localhost]:2222
で始まる行を削除してファイルを保存します。もう一度sshを試してください。
mian@tdowrick2~$ ssh pos@localhost -p 2222
エラーは消えますが、コンテナを再起動するたびにエラーが発生します。
唯一のクライアント側の問題(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 - 非標準ポート
非常に簡単な解決策:/home/hostname /.ssh/known_hosts
を編集し、4行を削除して保存します。それからssh root@pong
を再度実行すると、次のようなメッセージが表示されます。Are you sure you want to continue connecting (yes/no)? yes
、単にyes
を出力します。
これは私のために働きます。
ちなみに、あなたが何らかの問題を抱えているなら、最初にヒントを読んでください、それは助けになるでしょう。
場合によっては、何らかの理由でサーバーを再インストールする必要があります。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
私は自分のマシンに同じエラーがあり、authorized_keys
とknown_hosts
ファイルをクリアしましたが、その後はうまくいきました。
私の解決策は:
vi ~/.ssh/known_hosts
これはknown_hosts
をすべて削除するよりはましです。
私はこの問題を抱えていました、そしてその理由は非常に単純です、私はSSHログインに重複したIPアドレスを持っています、従ってこの問題を修正した後、すべてが解決されます。
このコマンドを使います。
truncate -s 0 /home/SYSTEM_NAME/.ssh/known_hosts
ただしてください:
cd /home/user/.ssh/
- >ここでuser
はあなたのユーザー名、例えば/home/jon/
になります。
それから
gedit known_hosts &
をクリックして、その中の内容を削除します。
今度はssh
、またうまくいくはずです。
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キーにコピーして貼り付けます。
わたしにはできる !
溶液:
1-「$ HOME/.ssh/known_hosts」から、接続が不可能なホストを指す行を削除します。
2-次のコマンドを実行します。ssh-keygen -R "IP_ADDRESSorHOSTNAME"( "IP_ADDRESSorHOSTNAME"をあなたのコピー先のIPアドレスまたはコピー先のホスト名に置き換えてください)
3 - ssh接続を再試行します(失敗した場合は、.sshディレクトリの許可を確認してください、700である必要があります)。