ssh AWS ec2 堡垒权限被拒绝

ssh AWS ec2 bastion permission denied

当我尝试通过堡垒服务器连接到专用网络中的 EC2 时,我收到以下消息:

<username>@<ec2-server>: Permission denied (publickey)

但是,我可以从我的本地计算机通过 ssh 连接到 bastion,也可以从 bastion 服务器通过 ssh 连接到 EC2,

这是我正在使用的.ssh/config

Host <ec2-servers>*
    IdentityFile ~/.ssh/id_rsa
    User <username>

这是我用于 ssh 的命令:

ssh -J <bastion-server> <ec2-server>

注意: 权限良好(~/.ssh/ 为 700,~/.ssh/* 为 600)

在此先感谢您的帮助!

在名为 'username' 的远程系统上可能没有用户。确保两个系统具有相同的用户名和 public 密钥。

您可以尝试使用以下配置作为您提到的 username 与您尝试连接的 jump hostactual instance 相同吗?

Host 10.2.2.* #ec2 servers cidr range
    ProxyJump jumpuser@proxy.example.com 

我认为可能不需要指定 IdentityFile ~/.ssh/id_rsa,因为它似乎是您正在使用的系统上的默认密钥。

确保 jumpuser 具有适当的权限。

仅用于调试目的,运行使用调试选项手动执行此操作

ssh -vvv -J username@host1:port username@host2:port   

会提供大量信息,您或许可以看出问题所在。

如果您正在使用 ssh-agent,它会删除所有身份并尝试可能也会有所帮助。

ssh-add -D

How to Access a Remote Server Using a Jump Host

How to Set Up an SSH Jump Server

通过在远程 ec2 实例的 authorized_keys 中添加本地 ssh public 密钥来修复它。