SSH密钥认证比密码认证更安全、更便捷。本文将介绍如何生成SSH密钥对并配置服务器。

生成SSH密钥

1
ssh-keygen -t rsa -b 4096 -C "[email protected]"

执行后会提示:

  • 密钥保存位置(直接回车使用默认路径)
  • 设置密码保护私钥(建议设置)

上传公钥到服务器

方法一:使用 ssh-copy-id(推荐)

1
ssh-copy-id username@server_ip

这个命令会自动将公钥添加到服务器的 ~/.ssh/authorized_keys 文件中。

方法二:手动复制

  1. 查看公钥内容

    1
    cat ~/.ssh/id_rsa.pub
  2. 登录服务器并添加公钥

    1
    2
    3
    4
    ssh username@server_ip
    mkdir -p ~/.ssh
    echo "你的公钥内容" >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys

配置SSH服务器

编辑SSH配置文件:

1
sudo nano /etc/ssh/sshd_config

添加或修改以下配置:

1
2
3
4
5
# 启用公钥认证
PubkeyAuthentication yes

# 禁用密码认证(可选,更安全)
PasswordAuthentication no

重启SSH服务:

1
sudo systemctl restart ssh

测试登录

1
ssh username@server_ip

如果配置正确,应该能够无密码登录服务器。

常见问题

权限问题

确保文件权限正确:

1
2
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

SSH服务重启问题

如果遇到 Unit sshd.service not found 错误:

1
2
3
# 尝试不同的服务名
sudo systemctl restart ssh
sudo systemctl restart sshd

本站由 Naiba 使用 Stellar 1.33.1 主题创建。 文章默认采用 CC BY-NC-SA 4.0 许可协议。