Linux添加SSH公钥
  以下是 Linux 系统中添加 SSH 公钥的完整操作指南,综合多个权威文档和实践案例整理而成:
一、生成 SSH 密钥对
生成密钥对
在本地终端执行以下命令生成 RSA 密钥对(推荐 4096 位长度以提高安全性):ssh-keygen -t rsa -b 4096 -C "your_email@example.com"1•
-t rsa:指定密钥类型为 RSA。•
-b 4096:设置密钥长度为 4096 位。•
-C:添加注释(通常为邮箱,用于标识密钥用途)。按提示选择密钥保存路径(默认
~/.ssh/id_rsa),建议设置密码短语(可选但推荐)。查看公钥内容
生成完成后,查看公钥文件id_rsa.pub的内容:cat ~/.ssh/id_rsa.pub1
二、将公钥添加到远程服务器 方法 1:使用 ssh-copy-id 工具(推荐)
ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_host
 • user@remote_host:替换为远程服务器的用户名和 IP/域名。
• 此命令会自动将公钥追加到远程服务器的 ~/.ssh/authorized_keys 文件中。
方法 2:手动添加
登录远程服务器
ssh user@remote_host1创建或更新
authorized_keys文件
确保.ssh目录存在并设置权限:mkdir -p ~/.ssh chmod 700 ~/.ssh1
2将本地公钥内容追加到远程服务器的
authorized_keys文件:echo "公钥内容" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys1
2
三、验证权限配置
本地验证
尝试通过 SSH 密钥登录服务器:ssh -i ~/.ssh/id_rsa user@remote_host1若无需输入密码即可登录,说明公钥已生效。
服务器端检查
确保以下权限设置正确:chmod 700 ~/.ssh # 目录权限 chmod 600 ~/.ssh/authorized_keys # 文件权限1
2
四、高级配置(可选)
- 多密钥管理 若需为不同服务器使用不同密钥,生成时指定文件名:
 
ssh-keygen -t rsa -b 4096 -f ~/.ssh/server1_rsa
 连接时通过 -i 指定私钥:
ssh -i ~/.ssh/server1_rsa user@server1
 - 禁用密码登录(提升安全性) 编辑远程服务器的 SSH 配置文件:
 
sudo nano /etc/ssh/sshd_config
 修改以下参数:
PasswordAuthentication no
ChallengeResponseAuthentication no
 2
重启 SSH 服务:
sudo systemctl restart sshd
 五、常见问题排查
连接被拒绝
• 检查远程 SSH 服务是否运行:sudo systemctl status sshd。• 确认防火墙开放 SSH 端口(默认 22)。
密钥认证失败
• 确保公钥内容无空格或格式错误。• 检查本地私钥路径是否正确。
通过以上步骤,您可高效完成 Linux 系统的 SSH 公钥配置。如需更详细的参数说明,可参考 OpenSSH 官方文档 (opens new window)。