当前位置:首页 > 系统教程 > 正文

Linux ssh-keygen指令详解

Linux ssh-keygen指令详解

从入门到精通:轻松掌握SSH密钥生成与管理

ssh-keygen 是OpenSSH套件中的一个工具,用于生成、管理和转换SSH协议认证所用的密钥。它是实现安全外壳协议(SSH)公钥认证的核心组件,为远程登录加密提供了基础。无论是系统管理员还是开发人员,掌握ssh-keygen都是进行安全远程连接的必要技能。

基本语法

ssh-keygen [选项]

常用选项详解

  • -t:指定密钥类型,如 rsa、dsa、ecdsa、ed25519。目前推荐使用 ed25519 或 RSA(至少2048位)。
  • -b:指定密钥长度。对于RSA,默认2048,建议4096;对于ed25519,长度固定。
  • -C:添加注释,通常使用邮箱标识,便于识别密钥。
  • -f:指定生成的密钥文件名,默认为 ~/.ssh/id_rsa
  • -N:提供新密码短语,用于加密私钥。
  • -p:修改私钥的密码短语。
  • -y:读取私钥文件并输出对应的公钥。
  • -R:从 known_hosts 文件中移除指定主机的密钥。
  • -H:对 known_hosts 文件进行哈希处理,增强安全性。

实战示例

1. 生成默认RSA密钥对

ssh-keygen

按提示操作,将生成 ~/.ssh/id_rsa(私钥)和 /.ssh/id_rsa.pub(公钥)。

2. 生成带注释的ED25519密钥

ssh-keygen -t ed25519 -C "user@example.com"

这将生成 ~/.ssh/id_ed25519~/.ssh/id_ed25519.pub,并添加注释便于管理。

3. 指定文件名和密码短语

ssh-keygen -f ~/.ssh/mykey -N "mypassword"

直接生成密钥对,并设置密码短语,避免交互式输入。

4. 查看公钥指纹

ssh-keygen -l -f ~/.ssh/id_rsa.pub

显示公钥的指纹(哈希值),用于验证密钥一致性。

5. 从known_hosts中移除主机

ssh-keygen -R github.com
Linux ssh-keygen指令详解 SSH密钥对 公钥认证 安全外壳协议 远程登录加密 第1张

密钥管理与安全建议

生成SSH密钥对后,私钥必须妥善保管,设置强密码短语并定期更换。公钥可以安全地分发给远程服务器,实现免密码登录。公钥认证机制是保障远程登录加密的重要防线,务必重视密钥文件的权限设置(私钥600,公钥644)。

通过本文的详细讲解,相信即使是小白也能轻松使用ssh-keygen管理自己的SSH密钥,提升远程操作的安全性。