web-dev-qa-db-ja.com

SSHの既知のホストをbashスクリプトに追加する方法は?

Webアプリケーションを展開できる新しいサーバーをプロビジョニングするbashスクリプトを作成しています。私が常にしなければならないことの1つは、ssh [email protected]を使用する既知のホストと同様にGitHubです。このプロセスをbashスクリプトで自動化し、べき等の方法で自動化するにはどうすればよいですか?

14
Andrew

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

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

このボックスが新品の場合は、~/.ssh実行前のディレクトリ ssh-keyscan

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

17
Zoredache

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

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

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

4
yoonix

私は質問を理解しているのかわかりませんが、known_Hostプロンプトを無視するか、完全に避けたいと思います。その場合:

ssh -o StrictHostKeyChecking = no

または他の提案: http://www.joedog.org/2012/07/ssh-disable-known_hosts-Prompt/

1
Sirex