回答:
-o "UserKnownHostsFile /dev/null"
動作するはずです。
grep
と、stdoutとstderrがマージされます。終了ステータスも変更できます。使用している場合bash
、メッセージを取り除くために、プロセスの置換を使用する方がよいでしょう:ssh 2> >( egrep >&2 -v '^Warning: Permanently added') -o "UserKnownHostsFile /dev/null" [...]
。パイプを回避するため、終了ステータス処理の対応する変更が回避されます。
クラウドサーバー(AWS EC2、Rackspace CloudServersなど)で作業しているため、またはVagrantで新しいイメージを常にプロビジョニングしているためにこの動作が必要な場合は、bashエイリアスまたはその他のオプションを追加する代わりにコマンドライン。
次のようなものを追加することを検討してください。
Host *.mydomain.com
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
User foo
LogLevel QUIET
ホストキーをknown_hostsに追加します(私の経験では、これらのサービスを実行している人は、少なくとも同じホスト名を提供するマシン間でホストキーの一貫性を保つのに十分な賢さです)。 LogLevel ERRORを使用してログを記録すると、セキュリティを犠牲にすることなく最高のエクスペリエンスが得られます。(OK、CheckHostIPを使用しない場合、DNSを信頼する必要があります。これは、広範にわたるDNSSECまたは類似のもののない巨大なギャップホールです。
読み取り専用のknown_hostsファイルを使用しているため、何かしなければならないか、known_hostsにエントリを追加できないという警告が何度も表示されます。
私が使用するもの:
Host github.com *.github.com
StrictHostKeyChecking yes
CheckHostIP no
LogLevel ERROR
これらのサービスがHTTPSを介してSSHホストキーをWebサイトに公開するようにしたいので、最初に接続しなくてもMITM攻撃にさらされる可能性なく明示的にコピーできます。
私は提案します
LogLevel ERROR
以上
LogLevel QUIET
そのため、「ホスト名を解決できませんでした」などのエラーが引き続き表示されます
grep -v "^Warning: Permanently added"