RedHat 6/Oracle Linux 6不允许通过ssh进行密钥身份验证



密钥在~/.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

这解决了这个问题。

我也遇到了同样的问题,上面提出的解决方案并没有解决我的问题

  1. 请检查目标系统上的以下日志文件以了解可能的错误详细信息:/var/log/secure
  2. users~/.ssh目录中文件的权限应为600,文件应由"user:group"所有
  3. ~/.ssh目录的权限应为700,并由"user:group"所有
  4. 用户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选项。

最新更新