Linux 生成密钥与 PuTTY 免密登录操作指导
·
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 转换:
- 将 Linux 服务器的私钥文件
id_rsa下载到 Windows 本地。可以输入如下命令
cd ~/.ssh
scp user@ip:~/.ssh/id_rsa .
- 打开 PuTTYgen,点击 Load 加载
id_rsa文件。 - (可选)核对公钥信息是否与
id_rsa.pub一致。 - 点击 Save private key,保存为
.ppk格式文件。
4. 使用 PuTTY 免密登录
- 打开 PuTTY,在 Session 中输入服务器 IP 和端口。
- 导航至 Connection → SSH → Auth → Credentials。
- 在 Private key file for authentication 中选择转换后的
.ppk文件。 - 返回 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目录权限为700,authorized_keys权限为600,避免因权限问题导致认证失败。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)