AWS EC2 SSH连接被拒绝求助:修改目录权限后无法连接
解决EC2因递归修改主目录权限导致SSH无法连接的问题
问题根源
执行sudo chmod -R 755 ./会递归修改当前目录下所有文件和文件夹的权限,若当前目录包含SSH服务依赖的关键文件目录(或直接为系统根目录/),会破坏sshd服务正常运行所需的权限配置,导致sshd无法启动、端口22处于关闭状态;而公网IP变更是因为实例使用动态公网IP,重启后IP自动更换,属于正常行为。
修复步骤
1. 通过EC2串行控制台连接实例
- 登录AWS控制台,进入目标EC2实例详情页,切换到「连接」选项卡
- 选择「串行控制台」,点击「连接」(若未启用串行控制台,先按提示完成权限配置)
- 在串行控制台窗口中,使用实例默认用户(如
ec2-user、ubuntu)完成登录验证
2. 修复SSH服务相关权限
- 检查sshd服务状态:
# Amazon Linux/CentOS systemctl status sshd # Ubuntu/Debian systemctl status ssh - 查看服务启动失败日志定位具体权限问题:
# Amazon Linux/CentOS journalctl -u sshd # Ubuntu/Debian journalctl -u ssh - 修复常见权限问题:
- 修正sshd配置文件权限:
chmod 600 /etc/ssh/sshd_config - 修正SSH主机密钥文件权限:
chmod 600 /etc/ssh/ssh_host_* - 修正用户主目录权限:
chmod 700 /home/[你的用户名](替换为实际用户名,如ec2-user) - 修正用户SSH目录及密钥文件权限:
chmod 700 /home/[你的用户名]/.ssh chmod 600 /home/[你的用户名]/.ssh/authorized_keys
- 修正sshd配置文件权限:
3. 重启SSH服务并验证
- 重启服务:
# Amazon Linux/CentOS systemctl restart sshd # Ubuntu/Debian systemctl restart ssh - 验证端口22监听状态:
若输出包含ss -tulpn | grep 22sshd进程,则说明服务已正常启动
4. 固定公网IP(可选)
- 若需避免重启实例后公网IP变更,可在AWS控制台为实例分配弹性IP,绑定后IP将保持固定
内容的提问来源于stack exchange,提问作者Radwan
相关产品推荐
相关产品推荐

