
Linux服务器远程连接指南:SSH密钥对创建与免密登录
一、为什么使用SSH密钥对?
相比传统密码登录,SSH密钥对提供更高的安全性:
非对称加密:公钥加密数据,私钥解密,避免密码被暴力破解。
免密登录:配置后无需重复输入密码,提升运维效率。
权限可控:可限制仅允许密钥登录,禁用密码认证。
二、SSH密钥对生成与配置
步骤1:生成密钥对(本地操作)
在本地Linux/Mac终端或Windows WSL中执行:
ssh-keygen -t ed25519 -C "your_email@example.com" # 推荐ed25519算法 # 或使用RSA算法(兼容旧系统): # ssh-keygen -t rsa -b 4096 -C "your_email@example.com" # 按提示设置密钥保存路径(默认~/.ssh/id_ed25519)和密码(可选)
生成的文件:
私钥:~/.ssh/id_ed25519
(需严格保密,权限600)
公钥:~/.ssh/id_ed25519.pub
步骤2:上传公钥到服务器
方法一:使用ssh-copy-id
(推荐)
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip # 输入服务器密码后自动配置
方法二:手动上传
复制公钥内容:
cat ~/.ssh/id_ed25519.pub
登录服务器,将公钥追加到~/.ssh/authorized_keys
:
mkdir -p ~/.ssh echo "粘贴公钥内容" >> ~/.ssh/authorized_keys chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
步骤3:测试免密登录
ssh -i ~/.ssh/id_ed25519 user@server_ip # 若提示密钥密码(创建时设置了),输入后即可登录
三、客户端工具配置指南
1. PuTTY(Windows)
转换密钥格式:
打开PuTTYgen
→ Load私钥(选择所有文件类型)→ 保存为.ppk
格式。
配置会话:
Host Name:user@server_ip
Connection → SSH → Auth → 指定.ppk私钥路径
Session → Save保存配置,双击打开连接。
2. Xshell(Windows/Mac)
新建会话:
名称:自定义,协议:SSH,主机:server_ip
身份验证:
方法:Public Key
用户密钥:浏览 → 导入私钥文件(或转换后的.ppk)
连接后输入用户名即可登录。
3. FinalShell(跨平台)
新建SSH连接:
名称:自定义,主机:server_ip
,用户:username
密钥配置:
认证方式:公钥
选择本地私钥文件路径(支持OpenSSH格式)
点击连接自动完成认证。
四、安全加固建议
禁用密码登录(服务器端):
sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config sudo systemctl restart sshd
更改SSH默认端口:
sudo vim /etc/ssh/sshd_config # 修改Port字段
使用防火墙限制IP访问。
五、常见问题排查
-
连接被拒绝:检查服务器ssh服务状态(
systemctl status sshd
)、防火墙及端口。 -
密钥权限错误:确保私钥权限为600,
.ssh
目录权限700。 -
认证失败:确认公钥已正确追加到
authorized_keys
,无换行错误。