Windows11自带OpenSSH连接AWS EC2权限问题及密钥存储咨询
Windows 11 OpenSSH连接AWS EC2问题解答
1. ssh-add添加.pem文件后,信息存在哪里?
ssh-add添加的密钥存储在ssh-agent服务的内存中,它不会写入.ssh/config文件——config是用来配置连接规则的,并非存储密钥的载体,这是你之前的误解点。- 如果开启了ssh-agent的密钥持久化功能(默认未开启),密钥会被加密存在
%USERPROFILE%\.ssh\agent目录下的缓存文件里,但重启ssh-agent服务或电脑后,持久化的密钥需要重新解锁才能使用。
2. 解决Permission denied权限错误的排查步骤
- 严格设置密钥文件权限:Windows下OpenSSH对.pem文件权限要求极高,右键
keypair.pem→属性→安全→高级,点击「禁用继承」,删除所有非当前用户的权限条目,只保留你自己的「完全控制」权限。权限过松会被SSH直接拒绝使用该密钥。 - 确认EC2实例的登录用户名:不同系统镜像的默认用户名不同:
- Amazon Linux/Amazon Linux 2:
ec2-user - Ubuntu:
ubuntu - CentOS:
centos - RHEL:
ec2-user或root
别用错用户名,这是高频踩坑点。
- Amazon Linux/Amazon Linux 2:
- 直接指定密钥连接测试:绕开ssh-agent的问题,直接执行命令:
能连上说明是ssh-agent配置问题;仍连不上就继续排查。ssh -i C:\Users\你的用户名\.ssh\keypair.pem ec2-user@ec2-x-xxx-xxx-xxx.eu-west-1.compute.amazonaws.com - 检查EC2安全组规则:确保实例的安全组允许从你的公网IP访问22端口(SSH),否则连握手环节都无法完成。
- 验证密钥对匹配性:确认创建EC2实例时选择的密钥对和本地的
keypair.pem是同一个,若实例使用的是其他密钥对,当前.pem完全无效。 - 查看详细连接日志:执行
ssh -v ec2-user@实例域名,通过输出日志能明确看到SSH尝试了哪些密钥、是否收到服务器拒绝信息,精准定位问题。 - 确认ssh-agent状态:用PowerShell执行
Get-Service ssh-agent,若状态不是Running,就执行Start-Service ssh-agent,再重新运行ssh-add .\keypair.pem。
内容的提问来源于stack exchange,提问作者aerioeus
相关产品推荐
相关产品推荐

