密钥在~/.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
我同意上面在根帐户中对大多数linux变体进行的更改。我在RedHat 6.3中遇到了一个问题,试图获得一个postgres用户帐户来使用DSA身份验证。(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
这解决了这个问题。
我也遇到了同样的问题,上面提出的解决方案并没有解决我的问题
- 请检查目标系统上的以下日志文件以了解可能的错误详细信息:/var/log/secure
- users~/.ssh目录中文件的权限应为600,文件应由"user:group"所有
- ~/.ssh目录的权限应为700,并由"user:group"所有
- 用户ie."~"(="~/.ssh/..")的主目录权限应为755。如果权限是f.ex775,则ssh密钥在我的系统中失败
brbruno
上面的答案很好,我有一个加法&一个建议。添加内容在下面的第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选项。