在Linux中设置SSH密钥认证登录通常包括生成密钥对、将公钥复制到目标服务器以及配置SSH服务允许密钥认证登录。以下是详细的步骤:
1. 生成密钥对
在本地计算机上生成SSH密钥对。打开终端,并执行以下命令:
ssh-keygen -t rsa
根据提示输入密钥保存路径和密码,或者直接按Enter使用默认选项。这将生成一个RSA密钥对,包括公钥(id_rsa.pub)和私钥(id_rsa)。
2. 复制公钥到目标服务器
将生成的公钥复制到你希望使用密钥认证登录的目标服务器上。你可以使用ssh-copy-id命令来完成此操作。例如:
ssh-copy-id username@hostname
其中,username是目标服务器上的用户名,hostname是目标服务器的主机名或IP地址。这将把本地计算机上的公钥添加到目标服务器上的~/.ssh/authorized_keys文件中。
3. 配置SSH服务
在目标服务器上,确保SSH服务已正确配置以允许密钥认证登录。编辑SSH配置文件/etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
确保以下配置项处于启用状态:
PubkeyAuthentication yes
PasswordAuthentication no
4. 重新加载SSH服务
在目标服务器上,重新加载SSH服务以使配置生效:
sudo systemctl reload sshd
5. 测试登录
现在你可以尝试使用SSH密钥认证登录到目标服务器:
ssh username@hostname
系统将提示你输入密钥密码(如果设置了密码),然后使用生成的密钥对进行登录。
注意事项:
在配置SSH服务之前,确保你已经在目标服务器上设置了另一种登录方式(例如密码登录),以防意外锁定自己出服务器。
在复制公钥到目标服务器时,请确保目标服务器的~/.ssh目录和authorized_keys文件的权限设置正确。通常,.ssh目录权限应设置为700,authorized_keys文件权限应设置为600。
以上是在Linux中设置SSH密钥认证登录的基本步骤。密钥认证登录提供了更安全、更便捷的登录方式,因此在生产环境中推荐使用。