我用我学校服务器上的一个班级帐户解决这个 SSH 问题花了我几个小时。
我无法在不输入密码的情况下通过 ssh 进入一个特定的班级帐户,而无密码身份验证可与我的其他班级帐户一起使用。.ssh/ 目录及其所有内容与其他类帐户具有相同、正确的权限。
原来问题是在我自己的主目录上设置的权限。当我的 HOME 目录的权限设置为 770(无论为 .ssh/ 设置的权限如何)时,无密码身份验证不起作用,但它在权限设置为 755 或 700 时有效。
有谁知道为什么 SSH 会这样做?是不是因为主目录权限太宽松了?当主目录设置得比 700 更宽松时,为什么 SSH 拒绝使用公钥/私钥进行身份验证?
Geo*_*e M 69
这是 SSH 的默认行为。它通过强制保护用户的密钥rwx------对$HOME/.ssh,并确保只有所有者具有写权限$HOME。如果各自所有者以外的用户对该$HOME目录具有写入权限,则他们可能会恶意修改 上的权限$HOME/.ssh,从而可能劫持用户密钥known_hosts或类似的东西。总之,以下权限$HOME足以让 SSH 正常工作。
rwx------rwxr-x---rwxr-xr-xSSH 将无法正常工作,并且如果目录中存在任何变化g+w或o+w存在任何变化,则会向日志设施发送警告$HOME。但是,管理员可以通过StrictModes no在sshd_config(或类似的)配置文件中定义来覆盖此行为,但应该明确的是,不建议这样做。
jip*_*pie 32
主目录上的 77x 意味着拥有正确 GID 的每个人都可以移动您的 .ssh 目录并将其替换为另一个目录。具有正确 GID 的用户对主目录具有写入/执行权限,因此可以重命名/创建文件/目录。
SSH 在权限方面非常挑剔,它应该如此。
| 归档时间: |
|
| 查看次数: |
103560 次 |
| 最近记录: |