📅 今日知识点
-
核心主题:使用SSH密钥实现PuTTY免密码登录Linux服务器
-
适用场景:日常运维、批量管理、自动化脚本
🔧 操作步骤
步骤1:下载安装PuTTY工具包
访问 PuTTY官网 下载完整安装包,主要包含:
-
putty.exe- SSH客户端 -
puttygen.exe- 密钥生成工具 -
pageant.exe- 密钥代理(可选)
步骤2:生成SSH密钥对
- 运行PuTTYgen:双击打开
puttygen.exe - 参数设置:
- Type of key: RSA
- Number of bits: 2048
- 生成密钥:点击"Generate"按钮,在空白区域移动鼠标
- 保存密钥:
-
(可选)设置Key passphrase增加安全性
-
点击"Save private key"保存为
id_rsa.ppk -
复制上方文本框中的公钥内容(以ssh-rsa开头)
具体参考下图:
步骤3:配置Linux服务器
在目标服务器上执行以下命令:
# 创建SSH目录并设置权限
mkdir -p ~/.ssh
chmod 700 ~/.ssh
# 添加公钥到授权文件
echo "粘贴步骤2中复制的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
步骤4:配置PuTTY客户端
- 基本连接设置:
- 启动
putty.exe - Session → Host Name: 输入服务器IP地址
- Port: 22(默认)
- Connection type: SSH
- 配置密钥认证:
- 左侧菜单:Connection → SSH → Auth → Credentials
- Private key file for authentication → Browse
- 选择之前保存的
.ppk私钥文件
- 保存会话:
- 返回Session类别
- 在Saved Sessions中为配置命名
- 点击Save保存
步骤5:测试连接
双击保存的会话名称,首次连接会提示确认服务器指纹,点击"Yes"。
如果配置正确,应该能直接登录而无需输入密码。
🚀 进阶用法
使用Pageant密钥代理
- 启动
pageant.exe - 右键系统托盘图标 → Add Key
- 选择私钥文件并输入密码
- 后续PuTTY连接会自动使用Pageant中的密钥
开机自启动:
创建批处理文件 start_pageant.bat:
@echo off
"C:\Program Files\PuTTY\pageant.exe" "C:\path\to\your\private_key.ppk"
将此文件添加到Windows启动项。
❗ 常见问题解决
Permission denied (publickey):
- 检查
~/.ssh目录权限是否为700 - 检查
~/.ssh/authorized_keys文件权限是否为600 - 确认公钥内容完整无误
Server refused our key:
- 检查SSH配置文件是否启用PubkeyAuthentication,如果服务器禁用了密钥登录,需编辑
/etc/ssh/sshd_config,配置以下选项:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
然后重启SSH服务:sudo systemctl restart sshd
-
查看服务器日志:
sudo tail -f /var/log/auth.log -
查看服务器日志:
sudo tail -f /var/log/auth.log
查看详细日志:
PuTTY中:Connection → SSH → Logging → 启用Verbose日志记录
💡 小贴士
- 私钥文件务必妥善保管,丢失后无法恢复访问
- 建议为私钥设置密码保护
- 定期更换SSH密钥(建议每年一次)
- 只给必要用户配置免密登录权限