公開鍵/秘密鍵を使用してSSH経由でマシンに初めて接続するときに、「known_Host」の質問をスキップするにはどうすればよいですか?
他のすべての現在の回答にはUserKnownHostsFile =/dev/nullがありません
一度使用したい場合は、以下を使用できます。
ssh -o StrictHostKeychecking=no hostname
繰り返し実行したい場合は、以下のようなものを〜/ .ssh/configに追加する必要があります
Host 192.168.0.*
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
OpenSSH for Windowsでこれを設定するには、単に/dev/null
with NUL
。
良い説明: http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-Host-key-checking.html
StrictHostKeyChecking
をオフにするには、ssh_config
またはコマンドラインオプションを使用します。
公開鍵を取得し、known_hostsファイルに追加してから、ハッシュを変更できます。
ssh-keyscan -t rsa hostname >> .ssh/known_hosts
ssh-keygen -H
rm .ssh/known_hosts.old
$ ssh -o StrictHostKeychecking=no hostname
これにより、チェックがスキップされ、リモートホストのキーが最初のログイン時に自動的に追加されます。 (オプションCheckHostIPもありますが、実際にキーが存在するかどうかのチェックを無効にするようには見えません)。
これを見つけるのにしばらく時間がかかりました。私が見た最も一般的なユースケースは、リモートネットワークへのSSHトンネルがある場合です。ここでのすべてのソリューションは、私のスクリプト(nagios)を破る警告を生成しました。
私が必要としたオプションは:
NoHostAuthenticationForLocalhost yes
これは、名前が示すように、localhostにのみ適用されます。
ホストチェックを一時的に無効にして、LiveCDシステムにログインできるようにする場合は、たとえば、~/.ssh/known_hosts
を別のものに変更し、完了したら元に戻します。
チェックを無効にすることもできますが、もちろん安全性は低くなります。理想的な状況では、すでにマシンにアクセスできる人に公開ホストキーを取得してsshにそれを使用するように指示する必要があります。つまり、次の出力を取得します。
cat /etc/ssh/ssh_Host_rsa_key.pub
マシンのホスト名を先頭に追加し、その行をマシンの〜/ .ssh/known_hostsファイルに追加します。あなたは次のようなものになるでしょう:
myhost.example.com ssh-rsa AAAAB3Netc ...
または、キーのフィンガープリントを取得したいだけの場合は(電話のように)限られた帯域幅チャネルで転送する方が簡単な場合は、ヘルパーを実行することができます。
ssh-keygen -lf /etc/ssh/ssh_Host_rsa_key.pub