我正在尝试配置我的 Ubuntu 16.04 服务器,以便我可以以 root 身份通过公钥 ssh 连接到它。我有许多以这种方式配置的 Ubuntu 14.04 服务器,它们运行良好。在我的 Ubuntu 16.04 服务器上,即使我传递的是公钥,它也会要求我输入密码。
以下是我的 sshd_config 文件的设置方式;
PermitRootLogin prohibit-password
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
这是我尝试 ssh 时 ssh -vvv 的输出;
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /root/.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,password
debug1: Trying private key: /root/.ssh/id_dsa
debug3: no such identity: /root/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /root/.ssh/id_ecdsa
debug3: no such identity: /root/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /root/.ssh/id_ed25519
debug3: no such identity: /root/.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
为什么它尝试除我正在使用的 /root/.ssh/id_rsa 之外的所有私钥?
此外,非 root 用户可以毫无问题地使用公钥 ssh,因此这一定是 root 用户特有的。
任何帮助都将不胜感激!提前致谢!
这是我的文件权限;
服务器:
drwx------ 2 root root 4096 8月19日 07:48 ../.ssh
drwx------ 2 root root 4096 8 月 19 日 07:48。
drwx------ 4 root root 4096 8月19日 08:19 ..
-rw------- 1 root root 400 8月19日 07:48 authorized_keys
-rw------- 1 root root 888 8月18日 10:58 known_hosts
客户:
drwx------ 2 root root 4096 8月19日 07:47 ../.ssh
drwx------ 2 root root 4096 8 月 19 日 07:47。
drwx------ 3 root root 4096 8月19日 07:54 ..
-rw------- 1 root root 1675 8月 19 07:47 id_rsa
-rw-r--r-- 1 root root 400 8月19日 07:47 id_rsa.pub
-rw------- 1 root root 444 8月18日 09:56 known_hosts
答案1
我终于弄清楚了导致问题的原因。由于服务器上的 sshd_config 文件包含条目 ServerKeyBits 1024,因此我必须以 1024 位创建密钥,ssh-keygen -t rsa -b 1024。
无论如何,感谢您的考虑。