【每日一技】配置PuTTY免密码登录Linux系统

6 阅读2分钟

📅 今日知识点

  • 核心主题:使用SSH密钥实现PuTTY免密码登录Linux服务器

  • 适用场景:日常运维、批量管理、自动化脚本

🔧 操作步骤

步骤1:下载安装PuTTY工具包

访问 PuTTY官网 下载完整安装包,主要包含:

  • putty.exe - SSH客户端

  • puttygen.exe - 密钥生成工具

  • pageant.exe - 密钥代理(可选)

步骤2:生成SSH密钥对

  1. 运行PuTTYgen:双击打开 puttygen.exe
  2. 参数设置
  •    Type of key: RSA
  •    Number of bits: 2048
  1. 生成密钥:点击"Generate"按钮,在空白区域移动鼠标
  2. 保存密钥
  •    (可选)设置Key passphrase增加安全性

  •    点击"Save private key"保存为 id_rsa.ppk

  •    复制上方文本框中的公钥内容(以ssh-rsa开头)

具体参考下图:

20260225-putty-generate-keys.png

步骤3:配置Linux服务器

在目标服务器上执行以下命令:

# 创建SSH目录并设置权限
mkdir -p ~/.ssh
chmod 700 ~/.ssh

# 添加公钥到授权文件
echo "粘贴步骤2中复制的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

步骤4:配置PuTTY客户端

  1. 基本连接设置
  •    启动 putty.exe
  •    Session → Host Name: 输入服务器IP地址
  •    Port: 22(默认)
  •    Connection type: SSH

20260225-putty-session-creation.png

  1. 配置密钥认证
  •    左侧菜单:Connection → SSH → Auth → Credentials
  •    Private key file for authentication → Browse
  •    选择之前保存的 .ppk 私钥文件

20260225-putty-session-cfg-ppk.png

  1. 保存会话
  •    返回Session类别
  •    在Saved Sessions中为配置命名
  •    点击Save保存

步骤5:测试连接

双击保存的会话名称,首次连接会提示确认服务器指纹,点击"Yes"。

如果配置正确,应该能直接登录而无需输入密码。

🚀 进阶用法

使用Pageant密钥代理

  1. 启动 pageant.exe
  2. 右键系统托盘图标 → Add Key
  3. 选择私钥文件并输入密码
  4. 后续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密钥(建议每年一次)
  • 只给必要用户配置免密登录权限