NAT インスタンス経由で仮想プライベート サーバーのプライベート サブネット内の Amazon Web Service (AWS) EC2 インスタンスに接続していますが、次のエラーが発生します。
権限が拒否されました (公開鍵)
これは、NAT に接続し、プライベート サブネット EC2 インスタンスに SSH 接続しようとした後に発生します。
手順:
~/.ssh/config
次のように ホストを定義します。Host my_aws_nat Hostname xx.xx.xx.xx User ec2-user IdentityFile /location/of/my/aws/key_pair.pem ForwardAgent yes
NATインスタンスへのSSH
ssh my_aws_nat
(成功)プライベートサブネットのインスタンスにSSHで接続すると、エラーが発生します。
ssh [email protected]
NAT からプライベート インスタンスに ping を実行できますping 10.0.X.X
。したがって、セキュリティ グループの問題ではないことはほぼ確実です。エージェント転送の問題のようです。
現在、接続しているインスタンスは、NAT インスタンスと同じキー ペアを使用しています (学習モード)。
私が試したもう一つの方法は、次のようにして NAT に接続することです。
ssh -A [email protected] -i key_pair.pem
この場合も、NAT には正しく接続されますが、プライベート インスタンスに接続すると同じエラーが発生します。
ssh-agent
Mac OS X で使用する必要がありますか?
それとも、 を指定しForwardAgent yes
ても/.ssh/config
同じことが行われないのでしょうか?
答え1
答え2
私の場合、要塞 (NAT インスタンス) の公開鍵を から削除すると役立ちました~/.ssh/known_hosts
。リモート要塞ホストの鍵が変更された場合 (新しいインスタンスに EIP を割り当てると頻繁に発生する可能性があります)、さらにStrictHostKeyChecking no
ssh_config で設定すると、要塞ホストで AgentForwarding が無効になります。要塞ホストにログインすると、その旨の警告も表示されます。私の場合は、単に読んでいないだけです -.-
したがって、キーを削除して再度接続すると、現在のキーが known_hosts ファイルに追加され、プライベートサブネット内のインスタンスに接続できるようになります。