![SSH 公钥不适用于特定用户](https://linux22.com/image/107646/SSH%20%E5%85%AC%E9%92%A5%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8E%E7%89%B9%E5%AE%9A%E7%94%A8%E6%88%B7.png)
我的系统上有 2 个用户,user1 和 user2。
以下是每个authorized_keys的md5sum:
de092f77fb4a3be2cd8864c5f9961149 user1/.ssh/authorized_keys
de092f77fb4a3be2cd8864c5f9961149 user2/.ssh/authorized_keys
以下是每个 .ssh 文件夹的列表:
user1/.ssh/:
total 8
drwx------. 2 user1 user1 28 Mar 16 12:11 .
drwxrwx---. 5 user1 user1 4096 Mar 16 12:11 ..
-rw-------. 1 user1 user1 412 Mar 16 12:11 authorized_keys
user2/.ssh/:
total 4
drwx------. 2 user2 user2 28 Mar 16 11:37 .
drwx------. 3 user2 user2 90 Mar 16 11:38 ..
-rw-------. 1 user2 user2 412 Mar 16 11:37 authorized_keys
这是每个的身份验证:
用户1:
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/me/.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
用户2:
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/me/.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 60
debug1: Server accepts key: pkalg ssh-rsa blen 279
/etc/passwd:
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1004:1004::/home/user2:/bin/bash
换句话说,我可以使用user2使用公钥登录,但不能使用user1。使用密码登录对两者都适用。我不知道为什么这对一个用户有效,而对另一个用户无效。我需要获得公钥身份验证才能与 user1 一起使用(因为我需要使用公钥身份验证通过 sshagent 运行脚本)
我不知道去哪里寻找为什么这不起作用。所有在线指南都要求检查密钥、权限并重新生成。但以上所有看起来都是正确的。我在 /etc/ssh 文件夹中没有发现提及 user1。
如果我提供密码,登录就可以正常工作。
请注意,我已编辑用户名以匿名化相关数据。
答案1
问题在于主文件夹的权限,它允许组写入。