在 Linux 系统中设置密钥登录(SSH 公钥认证)可以提高安全性并免去每次输入密码的麻烦。以下是详细步骤:
操作步骤
1. 生成密钥对(在本地计算机操作)
打开终端,执行以下命令生成 RSA 密钥对(默认路径为 ~/.ssh/id_rsa
和 ~/.ssh/id_rsa.pub
):
ssh-keygen -t rsa -b 4096
按提示输入密钥保存路径(直接回车使用默认路径)。
设置密钥的密码(可选,若设置则每次使用密钥需输入此密码)。
2. 将公钥上传到服务器
方法一:使用 ssh-copy-id
(最简单)
ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip
输入服务器密码后,公钥会自动追加到服务器的 ~/.ssh/authorized_keys
文件中。
方法二:手动上传(若无 ssh-copy-id
)
查看本地公钥内容:
cat ~/.ssh/id_rsa.pub
登录服务器,将公钥内容粘贴到
~/.ssh/authorized_keys
:mkdir -p ~/.ssh echo "粘贴的公钥内容" >> ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
3. 配置服务器 SSH 服务
编辑服务器上的 /etc/ssh/sshd_config
文件:
sudo vim /etc/ssh/sshd_config
确保以下配置:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no # 禁用密码登录(确保密钥登录成功后再修改此项!)
重启 SSH 服务:
sudo systemctl restart sshd
4. 测试密钥登录
从本地尝试登录服务器:
ssh username@server_ip
若密钥无误且未设置密码,将直接登录。
若密钥有密码,需输入密钥密码。
注意事项
备份密钥:私钥丢失将无法恢复,务必妥善保管。
禁用密码登录:仅在确认密钥登录成功后修改
PasswordAuthentication no
。紧急访问:确保留有其他访问方式(如控制台)。
完成以上步骤后,你的 Linux 服务器将通过 SSH 密钥认证登录,安全性显著提升。