使用带有公钥身份验证的 ssh 时仍然收到密码提示吗?

使用带有公钥身份验证的 ssh 时仍然收到密码提示吗?

我尝试了这个解决方案中提到的所有内容为什么使用公钥身份验证时,我仍然收到 ssh 密码提示?,但仍然提示输入密码。

我的本地日志:

ssh -vvv srvFlink@remoteHost

debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-keyex,gssapi-with-mic,password
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/srvFlink/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/srvFlink/.ssh/id_dsa
debug3: no such identity: /home/srvFlink/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /home/srvFlink/.ssh/id_ecdsa
debug3: no such identity: /home/srvFlink/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /home/srvFlink/.ssh/id_ed25519
debug3: no such identity: /home/srvFlink/.ssh/id_ed25519: No such file or directory
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
srvFlink@remoteHost's password:

远程机器文件权限:

drwx------.  2 srvFlink srvFlink   58 Aug 18 04:46 .ssh

-rw-------. 1 srvFlink srvFlink 1679 Aug 18 04:41 id_rsa
-rw-r--r--. 1 srvFlink srvFlink  406 Aug 18 04:41 id_rsa.pub
-rw-rw-r--. 1 srvFlink srvFlink  406 Aug 18 04:45 authorized_keys
drwx------. 2 srvFlink srvFlink   58 Aug 18 04:46 .
drwx------. 4 srvFlink srvFlink 4096 Aug 18 05:14 ..

我的文件里/etc/selinux/config有。

SELINUX=permissive
SELINUXTYPE=targeted

内容id_rsa.pub我的本地计算机的数据在远程计算机中〜/.ssh/authorized_keys

/etc/ssh/sshd_config两台机器的内容 相同。

可能是什么问题?

编辑

看起来像文件权限问题:

$ journalctl _COMM=sshd
Aug 18 06:54:53 localhost sshd[8891]: error: Could not load host key: /etc/ssh/ssh_host_dsa_key
Aug 18 06:54:53 localhost sshd[8891]: Authentication refused: bad ownership or modes for file /home/srvFlink/.ssh/authorized_keys
Aug 18 06:54:56 localhost sshd[8891]: Connection closed by remotehost [preauth]

答案1

-rw-rw-r--. 1 srvFlink srvFlink  406 Aug 18 04:45 authorized_keys

应该

-rw-r--r--. 1 srvFlink srvFlink  406 Aug 18 04:45 authorized_keys

如中所述发布您在问题中链接的内容,其中接受的答案部分内容为“您的主目录 ~、您的 ~/.ssh 目录和远程计算机上的 ~/.ssh/authorized_keys 文件必须只能由您写入”

您也没有在问题中发布主目录的权限;确保它们也不是群组可写或其他可写的。

答案2

我在两台服务器上遇到了完全相同的问题:运行 Debian Stretch 的 Linux 和 NAS (Synology DS715)

事实证明,这两种情况都是服务器上的主目录权限错误

服务器上的 auth.log 非常有帮助

身份验证被拒绝:目录 /home/cyril 的所有权或模式错误

在Linux上,它有写/组位(drwxrwxr--x),所以我必须至少删除组上的写(chmod gw ~/)然后它就起作用了

在 Synology 上,无论出于何种原因,有一个棘手的问题

drwx--x--x+ 4 toto 用户 4096 Jan 6 12:11 /var/services/homes/toto

我不得不改变它

chmod -t ~/

然后我就可以在没有密码的情况下连接

答案3

调试日志清楚地显示您的 ssh 客户端仅尝试 id_rsa、id_dsa、id_ecdsa 和 id_ed25519 文件,而不是 id_rsa.pub。

相关内容