在本地计算机上生成 SSH 密钥对,其中包括私钥和公钥。可以使用以下命令生成 SSH 密钥对:
ssh-keygen -t rsa
执行命令后,会提示输入保存密钥对的文件名和密码。可以选择默认选项,一路按回车键即可。在生成 SSH 密钥对后,私钥位于 ~/.ssh/id_rsa,公钥位于 ~/.ssh/id_rsa.pub。
将公钥复制到服务器的 ~/.ssh/authorized_keys 文件中。可以使用以下命令将公钥复制到服务器:
ssh-copy-id user@hostname
其中,user 是登录服务器的用户名,hostname 是服务器的主机名或 IP 地址。执行命令后,需要输入服务器的密码进行确认。
如果无法使用 ssh-copy-id 命令,可以手动将公钥复制到服务器的 ~/.ssh/authorized_keys 文件中。
配置 SSH 服务,以允许使用证书登录。可以使用以下命令编辑 /etc/ssh/sshd_config 文件:
sudo vi /etc/ssh/sshd_config
在文件中添加以下配置:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
RSAAuthentication 和 PubkeyAuthentication 指令启用 SSH 密钥验证,AuthorizedKeysFile 指令指定了公钥文件的路径。
完成上述步骤后,需要重启 SSH 服务以使配置生效:
sudo systemctl restart sshd
配置完成后,可以使用证书登录服务器。在本地计算机上使用以下命令登录服务器:
ssh -i ~/.ssh/id_rsa user@hostname
其中,-i 参数指定了私钥的路径,user 是登录服务器的用户名,hostname 是服务器的主机名或 IP 地址。