Webアプリケーションを展開できる新しいサーバーをプロビジョニングするbashスクリプトを作成しています。私が常にしなければならないことの1つは、ssh [email protected]
を使用する既知のホストと同様にGitHubです。このプロセスをbashスクリプトで自動化し、べき等の方法で自動化するにはどうすればよいですか?
簡単な方法は、次のようなことです。
ssh-keyscan remote_server >>~/.ssh/known_hosts
このボックスが新品の場合は、~/.ssh
実行前のディレクトリ ssh-keyscan 。
Ssh-keyscanは任意の数のホスト名を取得できることに注意してください。可能なすべてのキーを取得します。
新しいキーの受け入れを自動化しようとしていますか?その場合は、-oStrictHostKeyChecking = noを使用できます。
中間者攻撃に対して完全にオープンになっているので、そうすることは非常に悪い考えです。
より良いオプションは、known_hostsファイルを管理し、新しいサーバーをプロビジョニングするときにそのファイルを再利用することです。 githubに貼り付けて、githubにログインする前にそのファイルをダウンロードする簡単なスクリプトを記述します。
厳密なホストキーチェックは良いことです。
私は質問を理解しているのかわかりませんが、known_Hostプロンプトを無視するか、完全に避けたいと思います。その場合:
ssh -o StrictHostKeyChecking = no
または他の提案: http://www.joedog.org/2012/07/ssh-disable-known_hosts-Prompt/