我在sshd_config
上添加了这些行AuthorizedKeysCommand /authorizedkeys/authorized-keys
AuthorizedKeysCommandUser ssh-keys
-rwxr-x--- 1 root ssh-keys 712 Dec 23 22:36 /authorizedkeys/authorized-keys
-rwxr-x--- 1 root ssh-keys 712 Dec 23 22:36 authorized-keys
ssh-keys用户可以执行该文件(/ authorizedkeys / authorized-keys)。 但我不能ssh到服务器; ssh git@myserver.com
在auth.log中的我可以看到这一行,
error: Unsafe AuthorizedKeysCommand: bad ownership or modes for directory /
如果我授予/ authorizedkeys / authorized-keys文件770权限,我会收到以下错误,
error: Unsafe AuthorizedKeysCommand: bad ownership or modes for file /authorizedkeys/authorized-keys
我尝试使用root作为AuthorizedKeysCommandUser并更改了/ authorizedkeys / authorized-keys文件的权限和所有者。它也不起作用。
我在ubuntu 14.04上使用OpenSSH_6.6.1p1。
注意:我可以使用authorized_keys文件
进行ssh答案 0 :(得分:5)
Unsafe AuthorizedKeysCommand: bad ownership or modes for directory /
它抱怨根目录的所有权或权限。根据源代码,文件,包含该文件的目录以及所有父目录(包括根目录)必须由root拥有。所有这些文件和目录的权限必须为0755(拒绝对组和其他的写访问权限。)
我的猜测是你在根目录上设置了组写权限,或类似的东西。
向" / authorizedkeys / authorized-keys"授予0770权限。还会导致该文件无法通过权限检查。
为了完整性,这是发出目录错误的代码部分:
if (stat(buf, &st) < 0 ||
(!platform_sys_dir_uid(st.st_uid) && st.st_uid != uid) ||
(st.st_mode & 022) != 0) {
snprintf(err, errlen,
"bad ownership or modes for directory %s", buf);
return -1;
}
如果出现以下情况,则会发出错误:
答案 1 :(得分:0)
authorized_keys
文件应为chmod 600
,而.ssh
目录应为chmod 700
。
答案 2 :(得分:-4)
您需要为远程主机上的密钥提供适当的权限:
[remote-host]$ chmod 755 ~/.ssh
[remote-host]$ chmod 644 ~/.ssh/authorized_keys