web-dev-qa-db-ja.com

SSHの既知のホストに対するホスト検証を回避するにはどうすればよいですか?

SSHを使用してサーバーに接続しようとするたびに、次のプロンプトが表示されます。 「はい」と入力しますが、これを回避する方法はありますか?

The authenticity of Host '111.222.333.444 (111.222.333.444)' can't be established.
RSA key fingerprint is f3:cf:58:ae:71:0b:c8:04:6f:34:a3:b2:e4:1e:0c:8b.
Are you sure you want to continue connecting (yes/no)? 
157
shantanuo

-oオプションを使います。

ssh -o "StrictHostKeyChecking no" [email protected]
219
thegeek

次の行を/etc/ssh/ssh_config..の先頭に追加します。

Host 192.168.0.*
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

オプション:

  • ホストサブネットは、すべてのIPへの無制限アクセスを許可するために*にすることができます。
  • グローバル設定の場合は/etc/ssh/ssh_configを、ユーザ固有の設定の場合は~/.ssh/configを編集します。

http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-Host-key-checking.html を参照してください。

97
JimFred

あなたが新しいホストに最初に接続するときだけこれを得るべきです。 yesと応答すると、ホストは~/.ssh/known_hostsに格納され、次回接続したときにプロンプ​​トが表示されることはなくなります。

何らかの理由で~/.ssh/known_hostsを書くことができない場合(例:アクセス権の問題)、接続するたびにプロンプ​​トが表示されます。

29
Paul R

最善の方法は(セキュリティを犠牲にしないため)1つのクライアントからすべてのコンピュータに1回接続することです(毎回プロンプトが表示されます。常にyesと答えます)。他の答えで指摘したように、キーは〜/ .ssh/known_hostsに保存されます。次に、このファイルを後で接続する可能性のあるすべてのクライアントコンピュータにコピーします(おそらく、使用する各ユーザーアカウントに対して)。それからこれらすべてのアカウントはコンピュータを「知っている」ので、プロンプトは表示されません。

単にプロンプ​​トを無効にすることよりも有利な点は、SSHが実際にMITM攻撃の有無を確認できることです。

11
sleske

認証ではなく確認を無効にしたい場合は、オプション「-o CheckHostIP = no」を使用できます。

ssh -i sergeys_rsa_key.pem -o CheckHostIP=no [email protected]
1
R J

これはおそらく、あなたのSSHキーサーバが変更されたためです。サーバのIPまたはドメインは同じですがSSHキーの不一致です。

このメッセージを回避するには、/home/$user/.ssh/known_hostsに格納されているキーを削除する必要があります。

そのファイル内のすべてのキーを削除するように修正したため、このドメイン名に対して新しいトークンが作成されます。

0
IvanReed