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

Oli*_*alo 12 redhat selinux sshd oracle-enterprise-linux

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

然而,ssh继续提示输入密码.

Oli*_*alo 29

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

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

chown -R <user>:<group> ~/.ssh
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
restorecon -R -v ~/.ssh
Run Code Online (Sandbox Code Playgroud)

  • 您不应该将文件权限更改为全局可读,即使它们位于受保护的目录中`restorecon -R -v $ HOME/.ssh`对我来说是什么诀窍 (3认同)

小智 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
Run Code Online (Sandbox Code Playgroud)

我已修复此问题:

chcon -R -t ssh_home_t .ssh
Run Code Online (Sandbox Code Playgroud)

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

  • 更正的命令:semanage fcontext -a -t ssh_home_t"/path/to/service/home/\.ssh(/.*)?" (2认同)