ssh AWS ec2 堡垒权限被拒绝

问题描述

当我尝试通过堡垒服务器连接到专用网络中的 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)

预先感谢您的帮助!

解决方法

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

,

您能否像您提到的 usernamejump host 尝试连接的 actual 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 公钥来修复它。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...