密钥已正确部署在 ~/.ssh/authorized_keys
然而 ssh 不断提示输入密码。
几个问题,主要是特权 - 但也与 RedHat 6 上的 SELinux 有关
以下脚本应全部修复,请替换<user>:<group>
为您匹配的用户 ID 和组
chown -R <user>:<group> ~/.ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
restorecon -R -v ~/.ssh
我同意上述更改适用于 root 帐户中的大多数 linux 变体。我在尝试获取 postgres 用户帐户以使用 DSA 身份验证时遇到了 RedHat 6.3 的问题。(6.3在VirtualBox中运行)
问题可能是基本的 selinux 权限是错误的。在这种情况下,Restorecon 无济于事。
(After restorecon)
drwx------. postgres postgres unconfined_u:object_r:var_lib_t:s0 .ssh
我已经解决了这个问题:
chcon -R -t ssh_home_t .ssh
这解决了这个问题的实例。
我也有同样的问题,上面提出的解决方案并没有解决我的问题。总结一下上面的说明:
布鲁诺
上面的答案很好,我有一个补充和一个建议。添加在下面的第 2 行,因为对于 ssh 密钥身份验证,主目录权限不会比 rwxr-x--- 更宽松。
cd ~
chmod g-w,o-rwx .
chmod 700 .ssh
cd .ssh
chmod 600 *
chmod 644 authorized_keys
chmod 644 known_hosts
chmod 644 config
restorecon -R -v ../.ssh
建议是在测试时使用 -vv 选项。