質問: 新しいホストをknown_hostsに自動的に追加できますか? これが私の状況です。中央のクライアントからいくつかの仮想マシンインスタンスを起動し、sshを介してそれらのコマンドを実行するテストハーネスをセットアップしています。仮想マシンには以前に使用されていないホスト名とipアドレスがあるため、中央クライアントの~/.ssh/known_hostsファイルには含まれません。私が抱えている問題は、新しい仮想インスタンスに対して実行された最初のsshコマンドが常に対話型のプロンプトを表示することです。the authenticity of host '[hostname] ([ip address])' can't be established. rsa key fingerprint is [key fingerprint]. are you sure you want to continue connecting (yes/no)? これをバイパスして、クライアントマシンが新しいホストを認識できるようにする方法はありますか。おそらく、仮想マシンイメージにすでにベイクされている公開鍵を使用しますか?可能であれば、対話型プロンプトに応答するためにexpectなどを使用する必要がないようにしたいのですが。
回答: 以下は〜/ .ssh/known_hostsの重複エントリを回避します:if ! grep "$(ssh-keyscan github.com 2>/dev/null)" ~/.ssh/known_hosts > /dev/null; then ssh-keyscan github.com >> ~/.ssh/known_hosts fi