Amazon Web Service (AWS) VPC プライベートサブネットインスタンス「アクセスが拒否されました (公開キー)」 - osx からの ssh

Amazon Web Service (AWS) VPC プライベートサブネットインスタンス「アクセスが拒否されました (公開キー)」 - osx からの ssh

NAT インスタンス経由で仮想プライベート サーバーのプライベート サブネット内の Amazon Web Service (AWS) EC2 インスタンスに接続していますが、次のエラーが発生します。

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

これは、NAT に接続し、プライベート サブネット EC2 インスタンスに SSH 接続しようとした後に発生します。

手順:

  1. ~/.ssh/config次のように ホストを定義します。

    Host my_aws_nat
    Hostname xx.xx.xx.xx
    User ec2-user
    IdentityFile /location/of/my/aws/key_pair.pem
    ForwardAgent yes
    
  2. NATインスタンスへのSSH ssh my_aws_nat(成功)

  3. プライベートサブネットのインスタンスにSSHで接続すると、エラーが発生します。ssh [email protected]

NAT からプライベート インスタンスに ping を実行できますping 10.0.X.X。したがって、セキュリティ グループの問題ではないことはほぼ確実です。エージェント転送の問題のようです。

現在、接続しているインスタンスは、NAT インスタンスと同じキー ペアを使用しています (学習モード)。

私が試したもう一つの方法は、次のようにして NAT に接続することです。

ssh -A [email protected] -i key_pair.pem

この場合も、NAT には正しく接続されますが、プライベート インスタンスに接続すると同じエラーが発生します。

ssh-agentMac OS X で使用する必要がありますか?

それとも、 を指定しForwardAgent yesても/.ssh/config同じことが行われないのでしょうか?

答え1

に従ってこれ答えてこのガイドライン

key_pair.pem次のように OSX ssh エージェントに 追加する必要がありました。

ssh-add -K /path/to/key_pair.pem

(私の場合はパスフレーズは求められませんでした)

その後、上記の両方の方法を使用してすべてが正常に機能しました。

それで質問に答えると:

質問: NAT/要塞ホスト経由でプライベートサブネットインスタンスにログインするには、Mac OS X で ssh-agent を使用する必要がありますか?
答え: はい

答え2

私の場合、要塞 (NAT インスタンス) の公開鍵を から削除すると役立ちました~/.ssh/known_hosts。リモート要塞ホストの鍵が変更された場合 (新しいインスタンスに EIP を割り当てると頻繁に発生する可能性があります)、さらにStrictHostKeyChecking nossh_config で設定すると、要塞ホストで AgentForwarding が無効になります。要塞ホストにログインすると、その旨の警告も表示されます。私の場合は、単に読んでいないだけです -.-

したがって、キーを削除して再度接続すると、現在のキーが known_hosts ファイルに追加され、プライベートサブネット内のインスタンスに接続できるようになります。

関連情報