12

密钥已正确部署在 ~/.ssh/authorized_keys

然而 ssh 不断提示输入密码。

4

4 回答 4

29

几个问题,主要是特权 - 但也与 RedHat 6 上的 SELinux 有关

以下脚本应全部修复,请替换<user>:<group>为您匹配的用户 ID 和组

chown -R <user>:<group> ~/.ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
restorecon -R -v ~/.ssh
于 2012-03-16T17:10:16.630 回答
6

我同意上述更改适用于 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

这解决了这个问题的实例。

于 2014-02-05T09:20:14.770 回答
1

我也有同样的问题,上面提出的解决方案并没有解决我的问题。总结一下上面的说明:

  1. 检查目标系统上的以下日志文​​件以获取可能的错误详细信息:/var/log/secure
  2. 用户 ~/.ssh 目录中文件的权限应为 600,文件应归“用户:组”所有
  3. ~/.ssh 目录的权限应该是 700 并且归“user:group”所有
  4. 用户主目录的权限,即。"~" (="~/.ssh/..") 应该是 755。如果权限是 f.ex 775,我的系统中的 ssh 密钥认证失败。

布鲁诺

于 2015-06-24T10:05:11.490 回答
0

上面的答案很好,我有一个补充和一个建议。添加在下面的第 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 选项。

于 2012-04-02T16:46:07.483 回答