Linux 生成密钥与 PuTTY 免密登录操作指导

1. 在 Linux 服务器生成密钥对

在终端中运行以下命令生成 RSA 密钥对:

ssh-keygen -t rsa

交互说明:

  • Enter file in which to save the key:指定私钥保存路径,直接回车使用默认路径(如 /root/.ssh/id_rsa)。
  • Enter passphrase:设置私钥保护密码。留空直接回车即可实现完全免密登录;若设置密码,则每次使用私钥时需输入。

生成结果:

  • 私钥id_rsa(需严格保密)
  • 公钥id_rsa.pub(需部署到服务器)

2. 部署公钥到服务器

将公钥内容写入 authorized_keys 授权文件:

cd ~/.ssh
cat id_rsa.pub >> authorized_keys

关键说明:

  • >>追加重定向,避免覆盖已有的授权密钥。
  • authorized_keys 是 SSH 服务默认的公钥授权名单,包含此文件的公钥即可登录。

3. 转换私钥格式(PuTTY 专用)

PuTTY 使用 .ppk 格式私钥,需通过 PuTTYgen 转换:

  1. 将 Linux 服务器的私钥文件 id_rsa 下载到 Windows 本地。可以输入如下命令
cd ~/.ssh
scp user@ip:~/.ssh/id_rsa .
  1. 打开 PuTTYgen,点击 Load 加载 id_rsa 文件。
  2. (可选)核对公钥信息是否与 id_rsa.pub 一致。
  3. 点击 Save private key,保存为 .ppk 格式文件。

4. 使用 PuTTY 免密登录

  1. 打开 PuTTY,在 Session 中输入服务器 IP 和端口。
  2. 导航至 Connection → SSH → Auth → Credentials
  3. Private key file for authentication 中选择转换后的 .ppk 文件。
  4. 返回 Session 保存配置,点击 Open 即可免密登录。

没问题,权限配置确实是 SSH 免密登录中最容易踩坑的环节。如果权限设置不正确,SSH 服务会出于安全保护机制拒绝读取密钥,导致登录失败。

以下是为您补充的权限检查与设置命令,您可以直接将其添加到操作指导中:


5. 检查与设置关键文件权限

SSH 服务端在认证前会严格校验文件权限,必须确保以下配置正确:

1. 设置 .ssh 目录权限为 700
该目录只能由所有者访问,防止其他用户篡改:

chmod 700 ~/.ssh

2. 设置 authorized_keys 文件权限为 600
授权文件只能由所有者读写,防止被其他用户窃取或修改:

chmod 600 ~/.ssh/authorized_keys

3. 检查文件所有者(重要)
确保这两个文件的所有者都是当前登录用户(以 root 为例),如果是由其他用户(如 root)创建或复制的,必须更改属主:

chown root:root ~/.ssh
chown root:root ~/.ssh/authorized_keys

💡 避坑提示:如果以上权限或属主配置有误,即使公钥和私钥完全匹配,服务器也会拒绝免密登录请求。遇到免密登录失败时,建议优先检查这两项设置。


️ 安全提示

  • 私钥(id_rsa / .ppk)务必妥善保管,禁止泄露。
  • 生产环境建议设置 passphrase,结合 ssh-agent 或 PuTTY 的 Pageant 工具实现“一次解锁,多次免密”,平衡安全与便利。
  • 确保服务器 ~/.ssh 目录权限为 700authorized_keys 权限为 600,避免因权限问题导致认证失败。
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐