在 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

  1. 查看本地公钥内容:

    cat ~/.ssh/id_rsa.pub
  2. 登录服务器,将公钥内容粘贴到 ~/.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
  • 若密钥无误且未设置密码,将直接登录。

  • 若密钥有密码,需输入密钥密码。


注意事项

  1. 备份密钥:私钥丢失将无法恢复,务必妥善保管。

  2. 禁用密码登录:仅在确认密钥登录成功后修改 PasswordAuthentication no

  3. 紧急访问:确保留有其他访问方式(如控制台)。

完成以上步骤后,你的 Linux 服务器将通过 SSH 密钥认证登录,安全性显著提升。