AWS EC2(AWS Linux)私有实例无法SSH访问问题求助
无公网IP AWS 私有DB实例访问解决方案
方案1:SSH 代理跳转(无需上传密钥到WEB服务器,推荐)
你无需将密钥文件上传到WEB服务器即可完成跳转访问,直接在本地终端执行如下命令即可:
高版本SSH(7.3及以上)使用ProxyJump参数
ssh -i /本地存储路径/key.pem -J web服务器用户名@web服务器公网IP DB实例用户名@DB实例私有IP
-J参数为SSH跳转标识,全程密钥仅在本地使用,不会传输到WEB跳板机,安全性更高。
低版本SSH使用ProxyCommand参数
如果你的本地SSH版本不支持-J参数,可改用如下命令:
ssh -i /本地存储路径/key.pem -o ProxyCommand="ssh -i /本地存储路径/key.pem -W %h:%p web服务器用户名@web服务器公网IP" DB实例用户名@DB实例私有IP
方案2:密钥无法上传到WEB服务器的排查指引
如果你确实需要将密钥上传到WEB服务器做跳转,可按如下顺序排查上传失败问题:
- 先修正本地密钥文件的权限,Linux/macOS端执行:
chmod 600 /本地存储路径/key.pem,SSH会拒绝权限过高的密钥文件进行传输、认证操作 - 使用scp命令执行上传,标准写法如下:
scp -i /本地存储路径/key.pem /本地存储路径/key.pem web服务器用户名@web服务器公网IP:~/
- 检查WEB服务器关联的安全组入方向规则,确认22端口(SSH端口)已对您的本地公网IP开放
- 检查WEB服务器的sshd服务配置,确认未禁用文件传输相关权限
方案3:AWS原生无跳板机访问方案
你也可以直接使用AWS官方提供的Session Manager服务访问私有实例,无需跳板机也无需配置公网IP:
- 首先确认私有DB实例已安装SSM Agent,且实例关联的IAM角色已附加
AmazonSSMManagedInstanceCore权限策略 - 登录AWS控制台进入EC2实例列表,选中目标私有DB实例,点击「连接」->「会话管理器」->「连接」即可直接登录实例
内容的提问来源于stack exchange,提问作者jeansyo
相关产品推荐
相关产品推荐

