ある ec2 インスタンスから別の ec2 インスタンスに ssh するにはどうすればいいですか?

ある ec2 インスタンスから別の ec2 インスタンスに ssh するにはどうすればいいですか?

AWS に 2 つの EC2 インスタンスを作成しました。それぞれにキー ペアを作成しました。.pem 秘密キーをダウンロードし、.ppk形式に変換しました。PuTTY と .ppk 秘密キーを使用して、各 ec2 インスタンスに接続できます。しかし、一方の ec2 インスタンスからもう一方のインスタンスに SSH するにはどうすればよいでしょうか。もう一方のインスタンスからどちらかのパブリック DNS に ping することはできます。しかし、一方から他方に SSH しようとすると、次のメッセージが表示されます。

権限が拒否されました (公開鍵)。

答え1

方法 1 - サーバー上で同じキーを使用する:

キーをopenssh形式に変換する秘密鍵をサーバーにアップロードします。宛先ホストに ssh するときに、秘密鍵ファイルを指定します。

ssh -i mykey.pem private.ip.of.other.server

方法2 - 新しいキーを作成する

各サーバーで以下を実行します:

ssh-keygen

Enter キーを押します。2 つのファイルが作成されます。

.ssh/id_rsa
.ssh/id_rsa.pub

の上サーバーA、cat を実行して公開鍵をクリップボードにコピーします。

cat ~/.ssh/id_rsa.pub
[select and copy to your clipboard]

SSHでサーバーB、その内容を authorized_keys ファイルに追加します。

cat >> ~/.ssh/authorized_keys
[paste your clipboard contents]
[ctrl+d to exit]

次に、サーバー A から ssh を実行します。

ssh -i ~/.ssh/id_rsa private.ip.of.other.server

答え2

3番目、そして私見では最良の解決策と呼ばれるものがありますSSHエージェント転送:

  • ローカルマシンで、次のセクションを追加して ~/.ssh/config を構成します。
Host <ip-or-name-of-A-server>
  ForwardAgent yes
  • サーバーAとBでは、ローカルの~/.ssh/id_rsa.pubがサーバーの~/.ssh/authorized_keysに追加されていると想定します。

サーバー A で作業している間、キーはその後の SSH 通信で使用できます - 例:

  • SSHクライアントで他のサーバーに接続する - この場合はサーバーBへ接続する
  • scp (セキュアコピー)、
  • git - ローカル ID を使用してリモート git リポジトリにプル/プッシュできます。

これが機能するかどうかを確認するには:

  • サーバーAに接続する
  • SSH_AUTH_SOCK 環境変数を検出して、キー交換用のソケット接続があるかどうかを確認します。
set|grep SSH_AUTH_ # output should be something like this:
SSH_AUTH_SOCK=/tmp/ssh-sEHiRF4hls/agent.12042

ノート:

答え3

この問題に対する新しい AWS ソリューション。

EC2インスタンス接続

同じ内容のブログ投稿はこちらです:

AWS ブログ

ご注意ください:

SSH 公開キーは、インスタンス メタデータで 60 秒間、1 回のみ使用できます。インスタンスに正常に接続するには、この時間枠内に SSH を使用して接続する必要があります。キーには有効期限があるため、以前のようにこれらのキーを直接追跡または管理する必要はありません。

関連情報