テスト環境の解体や停止、フェイルオーバー テストの実行などのために、Google Compute Engine でマシンを削除して再作成することがよくあります。
問題は、GCE がイメージまたはスナップショットから作成される新しいインスタンスごとに SSH サーバー キーを常に再作成することです。
scp または ssh 操作を実行するときに、静的 SSH キーまたはマシン間で容易に受け入れられる SSH キーを取得する簡単な方法は何ですか?
答え1
マシンをテストのみに使用しており (ssh
もちろん、それ自体以外の何かをテストしている)、セキュリティに問題がない場合 (閉じた環境)、インストール スクリプト/キックスタート/最初のブートの一部にして、キーをどこかから取得し、独自に生成しないようにすることができます (キー生成をトリガーする方法はディストリビューションによって異なりますが、RHEL は最初のサービス開始時にキーが欠落している場合にのみキーを作成します)。
答え2
google_compute_engine
ディレクトリにすでに秘密鍵ファイルがある場合/home/<username>/.ssh/
、gcloud compute ssh <target instance>
コマンドを使用しても新しい鍵は生成されません。ただし、別のユーザー名を使用する場合や、新しく作成された VM インスタンスから SSH 接続しようとする場合は、gcloud compute ssh
コマンドによってセキュリティ要件に準拠する新しい秘密鍵/公開鍵が生成されます。
秘密鍵を特定のマシンまたはローカル コンピューターにコピーし、常にそこから SSH を実行できます。これにより、新しい鍵を生成する必要がなくなります。
SSH ホスト キーに関する場合は、-o StrictHostKeyChecking=no
ssh コマンド (OpenSSH) でオプションを使用して、ホスト キーの信頼性のチェックをバイパスできます。