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)?
-o
オプションを使います。
ssh -o "StrictHostKeyChecking no" user@Host
次の行を/etc/ssh/ssh_config
..の先頭に追加します。
Host 192.168.0.*
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
オプション:
*
にすることができます。/etc/ssh/ssh_config
を、ユーザ固有の設定の場合は~/.ssh/config
を編集します。http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-Host-key-checking.html を参照してください。
あなたが新しいホストに最初に接続するときだけこれを得るべきです。 yes
と応答すると、ホストは~/.ssh/known_hosts
に格納され、次回接続したときにプロンプトが表示されることはなくなります。
何らかの理由で~/.ssh/known_hosts
を書くことができない場合(例:アクセス権の問題)、接続するたびにプロンプトが表示されます。
最善の方法は(セキュリティを犠牲にしないため)1つのクライアントからすべてのコンピュータに1回接続することです(毎回プロンプトが表示されます。常にyesと答えます)。他の答えで指摘したように、キーは〜/ .ssh/known_hostsに保存されます。次に、このファイルを後で接続する可能性のあるすべてのクライアントコンピュータにコピーします(おそらく、使用する各ユーザーアカウントに対して)。それからこれらすべてのアカウントはコンピュータを「知っている」ので、プロンプトは表示されません。
単にプロンプトを無効にすることよりも有利な点は、SSHが実際にMITM攻撃の有無を確認できることです。
認証ではなく確認を無効にしたい場合は、オプション「-o CheckHostIP = no」を使用できます。
ssh -i sergeys_rsa_key.pem -o CheckHostIP=no [email protected]
これはおそらく、あなたのSSHキーサーバが変更されたためです。サーバのIPまたはドメインは同じですがSSHキーの不一致です。
このメッセージを回避するには、/home/$user/.ssh/known_hosts
に格納されているキーを削除する必要があります。
そのファイル内のすべてのキーを削除するように修正したため、このドメイン名に対して新しいトークンが作成されます。