防止因文件权限导致的 SSH 锁定

防止因文件权限导致的 SSH 锁定

我按照惯例只允许使用 SSH 公钥登录 Debian,然后不知何故我意外更改了 ~/.ssh/ 文件夹的权限(我认为它归 root 所有),之后 openSSH 拒绝让我登录!(并且服务器位于不同的国家/地区,没有远程/KVM 控制台)

我发现这个设置非常脆弱。有没有办法防止这种情况发生,也许只是在下次登录时给我一个警告?

如果没有解决方案,那么无论其他人怎么说,我都必须设置一个强登录密码作为备份。

发现类似的锁定问题,但 iptable/配置更改是根本原因: 配置 SSH 和 iptables 时防止被锁定 我没有改变配置所以我没想到会被锁定。

答案1

如果要恢复主机,则需要使用替代访问方法。互联网上的 ssh 需要正常运行:网络访问、防火墙允许规则、运行和配置的 sshd、安全密钥文件。其中任何一个中断,都无法进入。最可靠的带外访问不依赖于主机中的 IP 网络来工作。

如果是虚拟机,可以将其关闭,并将磁盘连接到其他工作实例以进行修复。这不是理想的选择,但只需要您有权访问磁盘。

脱离主机的数据备份允许创建新的替代主机。仅仅因为 ssh 访问丢失而销毁并重建似乎很愚蠢,但它仍然是一个恢复选项。

至于如何从一开始就预防问题,对 sshd 配置(sshd -T -f对于 OpenSSH)进行语法检查并不能发现所有问题。可以通过在不同端口上启动另一个 sshd 来进行端到端测试,除端口号外,其他所有东西都相同。远程连接到此 sshd 以测试一切是否正常。不幸的是,即使如此小心也无法发现意外的事情,例如主目录上的权限更改会意外使 ssh 文件不安全。或者 IP 更改可能会ssh_configMatch关键字而改变有效性。

密码仍然是一种糟糕的身份验证机制。

相关内容