哎呀。今天是星期一。
我运行了这些命令,以便 php 可以访问 cron 写入主文件夹的某些文件:
chown ec2-user:apache /home/ec2-user
chmod 2775 /home/ec2-user
# the owner of /home/ec2-user used to be root:root. I intended to change to root:apache, but copy/pasted this line from somewhere and didn't proofread.
一切正常,直到我的连接关闭,现在我无法再通过 SSH 进入服务器。错误是Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
有什么方法可以重新获得服务器的访问权限吗?
这是 AWS 上的 Amazon Linux 2 实例。
答案1
以下是我解决问题的方法(感谢@MisterSmith 的系统管理员评论):
访问“AWS 系统管理器”> 自动化
搜索
AWSSupport-TroubleshootSSH
并选择它。选择实例(我必须将“显示托管实例”选择更改为“显示所有实例”
将操作更改为“检查全部”,并将允许离线更改为“真”,然后执行
(实例的停止/启动是作为执行的一部分进行的)
结果输出:
----------[Diagnostic Results]----------
module run/openssh [SUCCESS] All configuration checks passed or all detected problems fixed.
-- FIXED Permission mode includes write for groups and/or other users: /home/ec2-user
-- FIXED Missing authorized key directory: /home/ssm-user/.ssh
-- FIXED Missing authorized key file: /home/ssm-user/.ssh/authorized_keys
-- FIXED Permission mode includes permissions for groups and/or other users: /etc/ssh/ssh_host_rsa_key
-- FIXED Permission mode includes permissions for groups and/or other users: /etc/ssh/ssh_host_ecdsa_key
-- FIXED Permission mode includes permissions for groups and/or other users: /etc/ssh/ssh_host_ed25519_key
我测试了 SSH 访问,一切都像以前一样正常!
奇怪的是,主文件夹所有者未发生改变。上述输出中的其他内容修复了问题。
ls -hal of /home/ec2-user in broken state:
drwxrwsr-x 7 ec2-user apache 4.0K May 18 06:59
ls -hal in repaired state:
drwxr-sr-x 7 ec2-user apache 4.0K May 18 06:59