SSHでホストに接続したいのですが、~/.ssh/known_hosts
にホスト名を追加したくありません。
どうやってやるの?
-o "UserKnownHostsFile /dev/null"
うまくいくはずです。
クラウドサーバー(AWS EC2、Rackspace CloudServersなど)を使用している場合、またはVagrantで新しいイメージを常にプロビジョニングしているためにこの動作が必要な場合は、bashエイリアスやその他のオプションを追加する代わりにSSH設定を更新しますコマンドライン。
次のようなものを追加することを検討してください。
Host *.mydomain.com
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
User foo
LogLevel QUIET
私の経験では、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攻撃にさらすことなくそれらを明示的にコピーすることができる。
私は提案します
LogLevel ERROR
オーバー
LogLevel QUIET
だからあなたはまだ "ホスト名を解決できませんでした"などのエラーを受け取ります
シングルSSHセッションの場合は、これを使用してください
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null user@Host
StrictHostKeyChecking
を無効にしてみましたか? -o
オプションまたは設定ファイル~/.ssh/config
でそれを行うことができます。
私は以下の.ssh/configエントリが役に立つことに気付きました(DHCPとDNSを使ったLAN):
CheckHostIP no
Host *.*
CheckHostIP yes
ローカルマシン名 "zora"または "goron"は動的に割り当てられたIPアドレスをチェックしませんが、www.mycompany.comまたはnode42.planetlab.comは静的IPを確認したままです。