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


16

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


他の質問より前の日付で、これが重複としてマークされたのはなぜですか?
ジェイソンアクセルソン

回答:


31

他のすべての現在の回答には、UserKnownHostsFile = / dev / nullがありません。

一度使用したい場合は、次を使用できます。

ssh -o StrictHostKeychecking=no hostname

繰り返し行う場合は、次のようなものを〜/ .ssh / configに追加する必要があります

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

OpenSSH for Windowsの上でこれを設定するには、単純に置き換える/dev/nullNUL

良い説明:http : //linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html


2
数か月間(積極的にではなく)サブネットを除外するために探していましたが、これはまさに私が望んでいたことです。dhcpを使用した小規模な開発ネットワークがあり、デバイスは常に新しいIPアドレスを取得しているため、デバイスへの接続が非常に簡単になっています。ありがとう!
アダムルイス

13

ターンStrictHostKeyCheckingを経てオフssh_configまたはコマンドラインオプション。


/ etc / ssh / ssh_configまたは〜/ .ssh / config ---またはそれがクライアントプラットフォームの場合はWindowsに相当するもの
Doug Harris

3

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

ssh-keyscan -t rsa hostname >> .ssh/known_hosts
ssh-keygen -H
rm .ssh/known_hosts.old

2
$ ssh -o StrictHostKeychecking=no hostname

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


2
また、UserKnownHostsFileを使用して、システムで署名が記憶されないようにします。良いトリック:ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeychecking=no hostname
metavida

2

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

必要なオプションは次のとおりです。

NoHostAuthenticationForLocalhost yes

名前が示すように、これはローカルホストにのみ適用されます。


0

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

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


-2
  1. 「StrictHostKeyChecking no」を/ etc / ssh / ssh_configに追加します
  2. cd〜/ .ssh
  3. rm known_hosts
  4. ln -s / dev / null known_hosts

ビンゴ


1
この質問がどのような攻撃を防ぐのか知っていますか?
フォンブランド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.