bash スクリプトに SSH 既知のホストを追加するにはどうすればいいですか?

bash スクリプトに SSH 既知のホストを追加するにはどうすればいいですか?

Web アプリケーションをデプロイできる新しいサーバーをプロビジョニングするための bash スクリプトを作成しています。常に実行する必要があることの 1 つは、 を使用して GitHub を既知のホストとして設定することです。このプロセスを bash スクリプトで自動化し、べき等的な方法で実行するにはどうすればよいですか?ssh [email protected]

答え1

簡単な方法は、次のようにすることです。

ssh-keyscan remote_server >>~/.ssh/known_hosts

このボックスが新品の場合は、~/.ssh実行する前にディレクトリを作成する必要があるかもしれません。sshキースキャン

ssh-keyscan は任意の数のホスト名を取得できることに留意してください。取得可能なすべてのキーが取得されます。

答え2

新しいキーの受け入れを自動化しようとしていますか? その場合は、-oStrictHostKeyChecking=no を使用できます。
これを行うと、中間者攻撃に対して完全に無防備になるため、非常に悪い考えです。

より良い選択肢は、known_hosts ファイルを管理し、新しいサーバーをプロビジョニングするときにそのファイルを再利用することです。それを github に貼り付け、github に ssh する前にそのファイルをダウンロードする簡単なスクリプトを作成します。

厳密なホストキーのチェックは良いことです。

答え3

質問がよく理解できませんが、known_host プロンプトを無視するか、完全に回避したいのだと思います。その場合、次のようになります。

ssh -o 厳格なホストキーチェック=いいえ

または他の提案については、以下をご覧ください。http://www.joedog.org/2012/07/ssh-disable-known_hosts-prompt/

関連情報