使用同密钥对的EC2实例间SSH连接失败,如何解决?
解决EC2实例SSH连接密钥文件错误问题
第一步:定位并获取密钥文件
错误提示明确说明找不到mykeypair.pem,先解决文件缺失问题:
- 先检查当前目录是否存在该文件,执行命令:
ls -l- 如果文件不在当前目录,执行SSH命令时要指定完整路径,比如文件存放在
~/ssh-keys/下,命令改为:ssh -i "~/ssh-keys/mykeypair.pem" ec2-user@172.20.4.46 - 如果文件根本不在当前EC2实例上,从本地机器把密钥文件传过来,在本地终端执行:
这样就能把密钥传到当前实例的home目录下。scp -i "本地路径/mykeypair.pem" mykeypair.pem ec2-user@172.20.1.190:~
- 如果文件不在当前目录,执行SSH命令时要指定完整路径,比如文件存放在
第二步:修复密钥文件权限
即使文件存在,权限不符合要求也会导致SSH拒绝使用,必须把权限设置为仅所有者可读可写:
执行命令:
chmod 600 mykeypair.pem
额外检查项
如果以上两步做完还是报错,检查以下内容:
- 目标EC2实例的安全组规则:确保入站规则允许当前实例的私网IP(172.20.1.190)访问22端口(SSH)。
- 目标实例的
authorized_keys文件:确认目标实例的~/.ssh/authorized_keys里包含当前密钥对的公钥(因为用的是相同密钥对,正常情况应该已存在,若有修改过可手动添加)。
内容的提问来源于stack exchange,提问作者Abeer
相关产品推荐
相关产品推荐

