我在公钥和私钥认证方面遇到了问题。我执行了这些步骤,但基于公钥的认证不起作用。1- 使用以下命令生成一对私钥和公钥 (RSA):
Generating public/private rsa key pair.
Enter file in which to save the key (/home/rc_ss/.ssh/id_rsa):
Created directory '/home/rc_ss/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/rc_ss/.ssh/id_rsa.
Your public key has been saved in /home/rc_ss/.ssh/id_rsa.pub.
The key fingerprint is:
ac:fd:d1:2e:e5:1e:db:87:98:77:9e:14:62:db:97:f0 rc_ss@rc_ss-network
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| . |
| S + . |
| o .o * o|
| . . .oo+ E.|
| ..o+++ =|
| .o+..=.|
+-----------------+
2- 使用 ssh-copy-id 通过网络复制,如下所示
rc_ss@rc_ss-network:~$ ssh-copy-id -i .ssh/id_rsa.pub [email protected]
The authenticity of host '192.168.2.100 (192.168.2.100)' can't be established.
ECDSA key fingerprint is 33:67:e0:02:b1:10:46:76:78:6b:1f:e2:55:9b:6a:a8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.2.100' (ECDSA) to the list of known hosts.
[email protected]'s password:
Now try logging into the machine, with "ssh '[email protected]'", and check in:
~/.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
3-然后,我想要无需密码即可连接到服务器 ssh,并处理以下问题:
rc_ss@rc_ss-network:~$ ssh [email protected]
[email protected]'s password:
这意味着仍然需要密码。有人能帮助我吗?非常感谢。
答案1
假设公钥已正确复制到目标服务器,您需要确保 SSH 守护程序支持无密码登录。此配置在文件中设置/etc/ssh/sshd_config
,您需要确保设置了以下值:
PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
如果未设置这些值,您将需要设置它们,然后在sudo service ssh restart
终端中重新启动 SSH。