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.pub
1
二、将公钥添加到远程服务器 方法 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_host
1创建或更新
authorized_keys
文件
确保.ssh
目录存在并设置权限:mkdir -p ~/.ssh chmod 700 ~/.ssh
1
2将本地公钥内容追加到远程服务器的
authorized_keys
文件:echo "公钥内容" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
1
2
三、验证权限配置
本地验证
尝试通过 SSH 密钥登录服务器:ssh -i ~/.ssh/id_rsa user@remote_host
1若无需输入密码即可登录,说明公钥已生效。
服务器端检查
确保以下权限设置正确: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)。