SSH和主目录权限


53

我用学校服务器上的一个班级帐户解决了SSH问题,花了我几个小时。

如果没有输入密码,我就无法进入一个特定的班级帐户,而其他班级帐户则可以使用无密码身份验证。.ssh /目录及其所有内容具有与其他类帐户相同的正确权限。

原来问题是在我自己的主目录上设置的权限。当我的HOME目录上的权限设置为770(不管为.ssh /设置的权限如何)时,无密码身份验证不起作用,但是在权限设置为755或700的情况下,它无密码身份验证。

有人知道为什么SSH这样做吗?是因为主目录权限太宽松了吗?当主目录设置为比700更允许时,为什么SSH拒绝使用公钥/私钥进行身份验证?


1
确认以下答案;问题是主文件夹上的组权限设置不正确(来自auth.log的错误消息是:“身份验证被拒绝:错误的所有权或目录/ home / <用户>的模式”)。我看到SSH对主目录权限保持警惕是正确的。
action_potato 2012年

5
您知道我们这里的标签维基吗?如果您单击ssh,然后单击learn more,您将看到一份清单,其中列出了SSH无法使用时的处理方法,其中提到了主目录权限。
吉尔斯(Gilles)'所以

啊,对不起,我对此一无所知!感谢您的注意。
action_potato 2012年

Answers:


54

这是SSH的默认行为。它通过强制保护用户的密钥rwx------$HOME/.ssh,并确保只有所有者具有写权限$HOME。如果除各自所有者以外的其他用户对$HOME目录具有写权限,则他们可能会恶意修改上的权限$HOME/.ssh,可能会劫持用户密钥known_hosts或类似内容。总而言之,$HOME对SSH 具有以下权限就足够了。

  • rwx------
  • rwxr-x---
  • rwxr-xr-x

如果目录有任何变化g+wo+w存在,则SSH将无法正常工作,并将向日志工具发送警告$HOME。但是,管理员可以通过StrictModes nosshd_config(或类似的)配置文件中进行定义来覆盖此行为,尽管应该明确地建议不要这样做


1
感谢您的提及StrictModes no。在我的设置中,在目标用户的主目录和所有后代上配置了ACL,以允许半特权用户(u:operator:rwx)进行修改,而SSH对此并不满意。
intelfx

31

主目录上的77x表示具有正确GID的每个人都可以移动.ssh目录并将其替换为另一个目录。具有正确GID的用户对主目录具有写/执行权限,因此可以重命名/创建文件/目录。

SSH在权限方面非常挑剔,应该这样做。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.