我有 2 个 CentOS 机箱,其 sshd 配置和整体设置完全相同。
盒子 A 可以顺利通过 SSH 连接到盒子 B,但盒子 B 无法使用公钥身份验证通过 SSH 连接到盒子 A(使用密码身份验证则没问题)。我已经反复检查了密钥、设置等 100 次,但就是不行。
当盒子 B 向盒子 A 提供 RSA 公钥时,盒子 A 似乎完全忽略了它。正常情况下,它应该返回一个“类型 60”的数据包,但它却再次返回一个类型 51 的数据包,并重新宣布可以继续进行身份验证。
这是调试信息。有人知道这是什么原因造成的吗?
debug1: Offering RSA public key: /home/patrick/.ssh/id_rsa
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
...
这是我的 /etc/ssh/sshd_config 的相关部分:
Subsystem sftp /usr/libexec/openssh/sftp-server
GatewayPorts no
AllowTcpForwarding yes
KeepAlive yes
Protocol 1,2
Port 8855
IgnoreRhosts yes
IgnoreUserKnownHosts no
PrintMotd yes
StrictModes yes
PubkeyAuthentication yes
PermitEmptyPasswords no
RSAAuthentication yes
这两个盒子上都使用了 OpenSSH_7.4p1、OpenSSL 1.0.2k-fips。
答案1
太疯狂了,这是 selinux 的问题。刚刚才发现。我必须这样做:
restorecon -R -v /home/patrick/.ssh
只是为了后人而放在这里...