当主目录由不同的组拥有并获得完全权限时,ssh拒绝密钥

时间:2015-08-20 13:07:50

标签: ssh

所以我遇到了ssh的一个奇怪问题。它并不完全是一个表演限制器,但它想知道它为什么会发生。

我目前正在使用Ubuntu 14.04 x64。我有ssh设置标准方式,键在:

/home/myuser/.ssh/authorized_keys

并拥有权限myuser:myuser / w 755

现在打破它,如果我跑:

chown myuser:mysql /home/myuser/
chmod 775 /home/myuser/

我收到server refused our key错误,在auth.log中,我看到了:

Authentication refused: bad ownership or modes for directory /home/myuser

但是,如果我现在更改模式,以便该组没有写入权限:

chmod 755 /home/myuser/

它工作正常Lol ...... 有人知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

因为它在source code中是硬编码的。这三行检查您的主目录是否归您所有,其他人无法写入:

if (stat(buf, &st) < 0 ||
    (!platform_sys_dir_uid(st.st_uid) && st.st_uid != uid) ||
    (st.st_mode & 022) != 0) {

这是非常合理的请求,因为你真的不希望任何人触摸你的主目录(通常甚至不读),但从不写,因为这意味着该组中的任何人都可以将他的密钥添加到你的{{1}文件(或做其他伤害)并以你的身份登录,你基本上不需要。