web-dev-qa-db-ja.com

SSH用のknown_hostsにhostkeyを追加しない

SSHでホストに接続したいのですが、~/.ssh/known_hostsにホスト名を追加したくありません。

どうやってやるの?

100
Albert
-o "UserKnownHostsFile /dev/null"

うまくいくはずです。

86
Albert

クラウドサーバー(AWS EC2、Rackspace CloudServersなど)を使用している場合、またはVagrantで新しいイメージを常にプロビジョニングしているためにこの動作が必要な場合は、bashエイリアスやその他のオプションを追加する代わりにSSH設定を更新しますコマンドライン。

次のようなものを追加することを検討してください。

Host *.mydomain.com 
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
  User foo
  LogLevel QUIET
  • 安全を期すために、できるだけHostの正規表現と同じくらい厳密に使用してください。
  • LogLevelをQUIETに設定すると、Guillaumeが言及した警告が表示されなくなります。
87
cclark

私の経験では、Hostキーをknown_hostsに追加して(少なくとも同じホスト名を提供しているマシン間でHostキーの一貫性を保つのに十分なほど賢い)、次にStrictHostKeyCheckingをオンにし、CheckHostIPをオフにLogLevel ERRORを使用してログを記録すると、セキュリティを犠牲にすることなく最高のエクスペリエンスを得ることができます。 (さて、CheckHostIPがなければ、あなたはDNSを信頼する必要があります。これは広範囲に及ぶDNSSECやそれに類似したものがない巨大なギャップホールです。

読み取り専用のknown_hostsファイルを使用しているので、何かをしなければならないか、known_hostsにエントリを追加できないという警告が無限に表示されます。

私が使うもの:

Host github.com *.github.com
StrictHostKeyChecking yes
CheckHostIP no
LogLevel ERROR

私はこれらのサービスに彼らのウェブサイト上で彼らのSSHホストキーをHTTPS経由で公開して欲しいので、最初に接続しなくても自分自身をMITM攻撃にさらすことなくそれらを明示的にコピーすることができる。

8
Kyle Rose

私は提案します

LogLevel ERROR

オーバー

LogLevel QUIET

だからあなたはまだ "ホスト名を解決できませんでした"などのエラーを受け取ります

5
kiloforce

シングルSSHセッションの場合は、これを使用してください

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null user@Host
5
Quanlong

StrictHostKeyCheckingを無効にしてみましたか? -oオプションまたは設定ファイル~/.ssh/configでそれを行うことができます。

2
jneves

私は以下の.ssh/configエントリが役に立つことに気付きました(DHCPとDNSを使ったLAN):

 CheckHostIP no

 Host *.*
 CheckHostIP yes

ローカルマシン名 "zora"または "goron"は動的に割り当てられたIPアドレスをチェックしませんが、www.mycompany.comまたはnode42.planetlab.comは静的IPを確認したままです。

0
sylvainulg