文档首页> 常见问题> 云服务器如何配置SSH免密登录?

云服务器如何配置SSH免密登录?

发布时间:2025-05-02 09:00       

云服务器SSH免密登录终极配置指南

在云服务器管理中,频繁输入SSH密码不仅效率低下,还存在安全隐患。本文将手把手教你配置SSH免密登录,实现"一键登录"的便捷操作。

SSH密钥生成示意图

一、准备工作

  • 云服务器实例(已安装OpenSSH服务)
  • 本地终端(Mac/Linux终端或Windows PowerShell)
  • 管理员权限(sudo或root权限)

二、密钥生成步骤

1. 本地生成密钥对

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

默认会在~/.ssh/目录生成id_rsa(私钥)和id_rsa.pub(公钥)

2. 上传公钥到服务器

推荐使用ssh-copy-id工具自动上传:

ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip

或者手动追加到authorized_keys文件:

cat ~/.ssh/id_rsa.pub | ssh username@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

三、服务器端配置

1. 权限设置

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

2. 修改SSH配置

编辑/etc/ssh/sshd_config文件:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no  # 禁用密码登录(可选)

重启SSH服务:sudo systemctl restart sshd

四、连接测试

尝试免密登录:

ssh username@server_ip

五、高级配置

1. 多密钥管理

创建config文件管理不同服务器:

Host myserver
    HostName server_ip
    User username
    IdentityFile ~/.ssh/custom_key

2. 安全加固

  • 设置私钥密码:ssh-keygen -p
  • 定期轮换密钥
  • 使用ED25519算法:ssh-keygen -t ed25519

六、常见问题排查

问题现象 解决方案
Permission denied (publickey) 检查authorized_keys权限是否为600
Agent admitted failure to sign 执行ssh-add ~/.ssh/id_rsa

总结

通过SSH免密登录配置,您不仅可以提高工作效率,还能增强服务器安全性。建议企业用户结合Jump Server等方案实现更完善的访问控制。