web-dev-qa-db-ja.com

公開鍵/秘密鍵を使用してSSH経由でマシンに初めて接続するときに、「known_Host」の質問をスキップするにはどうすればよいですか?

公開鍵/秘密鍵を使用してSSH経由でマシンに初めて接続するときに、「known_Host」の質問をスキップするにはどうすればよいですか?

16
Crazy Chenz

他のすべての現在の回答には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

31
Jason Axelson

StrictHostKeyCheckingをオフにするには、ssh_configまたはコマンドラインオプションを使用します。

13
chaos

公開鍵を取得し、known_hostsファイルに追加してから、ハッシュを変更できます。

ssh-keyscan -t rsa hostname >> .ssh/known_hosts
ssh-keygen -H
rm .ssh/known_hosts.old
3
egridasov
$ ssh -o StrictHostKeychecking=no hostname

これにより、チェックがスキップされ、リモートホストのキーが最初のログイン時に自動的に追加されます。 (オプションCheckHostIPもありますが、実際にキーが存在するかどうかのチェックを無効にするようには見えません)。

2
Nelson

これを見つけるのにしばらく時間がかかりました。私が見た最も一般的なユースケースは、リモートネットワークへのSSHトンネルがある場合です。ここでのすべてのソリューションは、私のスクリプト(nagios)を破る警告を生成しました。

私が必要としたオプションは:

NoHostAuthenticationForLocalhost yes

これは、名前が示すように、localhostにのみ適用されます。

2
richo

ホストチェックを一時的に無効にして、LiveCDシステムにログインできるようにする場合は、たとえば、~/.ssh/known_hostsを別のものに変更し、完了したら元に戻します。

0
endolith

チェックを無効にすることもできますが、もちろん安全性は低くなります。理想的な状況では、すでにマシンにアクセスできる人に公開ホストキーを取得して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
0
erh