我是新手,我创建了一个新用户并禁用了 root 权限,一切正常。我想使用 FileZilla 进行编辑,sshd_config
但/etc/ssh directory
我没有权限,所以我认为我需要授予我的用户编辑权限。
因此/etc/ssh
我在 putty 上运行这个命令:
sudo setfacl -R -m u:myuser:rwx /etc/ssh
此后,当我想使用 putty 或 FileZilla 登录时,我得到:
服务器意外关闭网络连接
我无法再通过 ssh 连接到我的服务器。请问这个问题该如何解决?
答案1
处理 SSH 的守护进程,代表安全的Shell 非常重视安全。特别是它认为,私人的主机密钥文件不能被其他用户(非 root 用户)读取或写入,并且它将拒绝使用此类密钥(您可能可以在日志中看到这一点)。如果所有密钥都处于此状态,就像使用命令所做的那样,sshd在尝试连接时将会放弃,因为至少需要一个主机密钥。
因此,由于您有备用访问权限,所以很简单:使用它来完全删除您使用此命令添加的所有附加 ACL:
sudo setfacl -R -b /etc/ssh
删除-b
所有扩展 ACL 并仅保留原始基本 Unix(或 Linux)ACL:用户、组、其他,与之前一样。
您可能不应该尝试使用 Filezilla 编辑配置文件,而是坚持使用 shell 访问:将其复制到其他地方,在其他地方编辑(如果愿意,可以使用 Filezilla),然后使用 SSH shell 来实际替换它(并重新加载守护进程)。
最后一条建议:在调整远程访问时,请始终保持远程访问处于连接状态。不要断开连接并重新连接以进行测试,而是尝试连接第二次。如果失败,您就会知道自己做错了什么,应该尽快恢复,无论发生什么,这都是通过剩余的连接访问来实现的。如果您因为不相关的原因断开连接,即使这也不是故障保存。无论如何,您还有一个备用访问权限,这很好。
答案2
我找到了一个解决方案:我给予 SSH 文件夹 0700 权限并给予其上的文件 0600 权限,问题就解决了。
我没有尝试:sudo setfacl -R -b /etc/ssh,因为问题已经解决,但这似乎是一个很好的解决方案。非常感谢