《Linux 基础点滴》:(17)SSH 密钥生成与管理 – 免密登录的利器
2026-04-25 11:58 xiashengwang 阅读(0) 评论(0) 收藏 举报学习目标
- 理解 SSH 密钥认证的原理(公钥/私钥)
- 学会使用
ssh-keygen生成密钥对 - 掌握将公钥部署到远程服务器的方法(
ssh-copy-id) - 了解密钥权限管理和安全注意事项
核心概念
1. 什么是 SSH 密钥认证?
SSH 支持两种登录方式:密码认证和密钥认证。密钥认证更安全、更便捷,尤其适合自动化脚本和日常管理。
- 私钥:保存在本地,必须严格保密(权限 600)。
- 公钥:可以放在远程服务器的
~/.ssh/authorized_keys文件中。
登录过程:客户端用私钥签名一个请求,服务端用公钥验证签名,无需输入密码。
2. ssh-keygen 命令速查表
| 命令 | 作用 | 示例 |
|---|---|---|
ssh-keygen -t rsa -b 4096 |
生成 RSA 密钥对,长度 4096 位 | 默认保存在 ~/.ssh/id_rsa |
ssh-keygen -t ed25519 |
生成 Ed25519 密钥对(更安全、更快) | 推荐现代系统使用 |
ssh-keygen -y -f ~/.ssh/id_rsa |
从私钥导出公钥 | |
ssh-keygen -p -f ~/.ssh/id_rsa |
修改私钥的密码短语 | |
ssh-copy-id -p 端口 -i ~/.ssh/mykey.pub user@host |
将公钥自动复制到远程服务器 | git bash自带这个工具,端口是22可以省略 |
ssh-add -l |
列出已加载到 ssh-agent 的密钥 | |
ssh-add ~/.ssh/id_rsa |
将私钥添加到 ssh-agent |
3. 文件存放位置与权限
| 文件 | 用途 | 必须权限 |
|---|---|---|
~/.ssh/ |
SSH 配置目录 | 700 |
~/.ssh/id_rsa |
私钥 | 600 |
~/.ssh/id_rsa.pub |
公钥 | 644 |
~/.ssh/authorized_keys |
远程服务器上存放的公钥列表 | 600 |
~/.ssh/config |
客户端主机配置(别名、跳板等) | 600 |
动手实验
实验 1:生成密钥对(Ed25519 算法)
# 生成密钥对,默认保存到 ~/.ssh/id_ed25519
ssh-keygen -t ed25519 -C "my-email@example.com"
# -C 添加注释,便于识别
# 一路回车可使用默认路径和无密码短语
导入秘钥到远程服务器
注意:在git bash中执行,路径要用/
ssh-copy-id -p 22 -i C:/Users/wang/.ssh/id_ed25519.pub
用户名@远程服务器IP
putty用秘钥连接,参考这篇。需要将上面的私钥,转换成putty用的私钥。
putty 基础
