我有2 个实例在 AWS 中。其中之一公共子网(堡垒),第二个私有子网。
它们都是用同一对密钥启动的(.pem文件)。
这是我连接堡垒的方式:
ssh -i secret.pem ec2-user@public-ip
效果很好,我加入了。
现在,我想在私有子网中通过 ssh 连接实例。谷歌搜索显示我应该转发代理:
ssh -A ubuntu@private-ip
但不幸的是我收到了错误:
Permission denied (publickey).
有人可以解释一下我做错了什么以及如何通过 ssh 连接私有实例吗?(ping 和安全组都没有问题)
答案1
我会这样做:
在您自己的笔记本电脑中,创建(或编辑现有文件)~/.ssh/config,并添加以下内容:
Host [host or ip of the bastion server]
User ec2-user
IdentityFile ~/.ssh/pem_file_required_to_connect_to_bastion
Host [host or ip of the bastion server]
User ec2-user
IdentityFile ~/.ssh/pem_file_required_to_connect_to_server
ProxyCommand ssh ec2-user@CHOSEN_HOST -W %h:%p
将 CHOSEN_HOST 替换为您为堡垒服务器配置的相同主机。
例子:
cat ~/.ssh/config
Host 3.126.138.136
User ec2-user
IdentityFile ~/.ssh/itaig.pem
Host 172.31.22.212
User ec2-user
IdentityFile ~/.ssh/itaig.pem
ProxyCommand ssh [email protected] -W %h:%p
~/.ssh at 02:40:57 PM
❯
ssh 172.31.22.212
Last login: Sun Aug 8 11:40:41 2021 from ip-172-31-29-253.eu-central-1.compute.internal
__| __|_ )
_| ( / Amazon Linux 2 AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-2/
-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
[ec2-user@ip-172-31-22-212 ~]$