误设AWS EC2服务器/.ssh目录为600权限致SSH连接失败,如何恢复?
解决EC2因.ssh目录权限错误导致的SSH连接失败问题
先确保Session Manager能连上实例
你之前用Session Manager没解决问题,大概率是没成功建立连接。先确认实例满足这几个前提:
- Amazon Linux 2/AMI默认预装了SSM Agent,其他系统需要手动安装
- 实例关联的IAM角色必须包含
AmazonSSMManagedInstanceCore权限策略 - 实例能访问SSM服务(要么有公网IP,要么VPC内配置了SSM端点)
满足条件后,在EC2控制台找到目标实例,右键选择「连接」→「Session Manager」→「连接」,就能进入实例的命令行界面。
修正目录与文件权限
连接成功后,执行以下命令:
# 切换到你的用户家目录,比如ec2-user,根据实际用户名调整 cd ~ # 将.ssh目录权限改回700 chmod 700 .ssh # 同时确认目录下的密钥文件权限为600,避免后续问题 chmod 600 .ssh/*
验证SSH连接
修改完成后退出Session Manager,重新尝试SSH连接,应该可以正常登录。
如果仍有问题,额外检查两项:
- 若存在
~/.ssh/config配置文件,需将其权限也设为600 - 检查SSH服务状态:
sudo systemctl status sshd(Amazon Linux 2)或sudo service sshd status(旧版Amazon Linux)
内容的提问来源于stack exchange,提问作者Bhavin Solanki
相关产品推荐
相关产品推荐

