![2 个 CentOS 盒子 - 一个无法使用公钥认证通过 SSH 连接到另一个?](https://linux22.com/image/1584688/2%20%E4%B8%AA%20CentOS%20%E7%9B%92%E5%AD%90%20-%20%E4%B8%80%E4%B8%AA%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%E5%85%AC%E9%92%A5%E8%AE%A4%E8%AF%81%E9%80%9A%E8%BF%87%20SSH%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%EF%BC%9F.png)
我有 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
只是为了后人而放在这里...