【问题标题】:ssh AWS ec2 bastion permission deniedssh AWS ec2 堡垒权限被拒绝
【发布时间】:2021-06-02 19:08:17
【问题描述】:

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

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

但是,我可以从本地计算机 ssh 到堡垒,并且可以从堡垒服务器 ssh 到 EC2,

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

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

这是我用来 ssh 的命令:

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

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

提前感谢您的帮助!

【问题讨论】:

  • 我不明白这个问题。您写道,您可以从堡垒 ssh 到您的私有 ec2 实例,那么问题是什么?
  • 感谢您的回复@Marcin 问题是我无法通过堡垒直接从本地计算机 ssh 到 ec2 服务器(即使我可以从本地 ssh 到堡垒并且我可以 ssh从堡垒到 ec2 也是如此)

标签: amazon-web-services ubuntu ssh bastion-host


【解决方案1】:

远程系统上可能没有名为“用户名”的用户。确保两个系统具有相同的用户名和公钥。

【讨论】:

  • 非常感谢@Rodrigo 的回复,实际上我为了简单起见把用户名放在了正确的位置,而且公钥在authorized_keys 中也很好(因为我可以从本地ssh 到堡垒和从堡垒到 ec2)
【解决方案2】:

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

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

【讨论】:

  • 感谢您的回复@samtoddler,我已经在本地计算机上创建了一个新用户,其用户名与堡垒和远程 ec2 相同,但错误仍然存​​在,我也遵循了您附加的教程也失败了,问题是否可能是我的本地密钥不在目标 ec2 实例authorized_keys 中?因为我在堡垒authorized_keys 上有它们,而堡垒在 ec2 实例authorized_keys 上,我认为这就足够了。
  • @Arsalen 你能检查你的ssh-agent 是否进一步正确地转发连接?
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 2018-02-04
    相关资源
    最近更新 更多