ssh-keygen命令详解(ssh -key)

ssh-keygen命令详解(ssh -key)

解决方案goocz2025-02-01 11:07:2952A+A-

ssh-keygen简介

ssh-keygen 是一个用于生成 SSH 密钥对的命令行工具。它是在 OpenSSH 工具包中提供的,用于创建用于 SSH 连接的公钥和私钥。

以下是 ssh-keygen 命令的基本语法:

一些常用的选项和参数包括:

  • -t:指定密钥类型,例如 rsa 或 dsa。
  • -b:指定密钥的位数,例如 2048 或 4096。
  • -f:指定密钥文件的路径和名称。
  • -C:添加注释到密钥文件。
  • -N:为私钥设置密码保护。

默认情况下,ssh-keygen 会生成一个名为 id_rsa 的私钥文件和一个名为 id_rsa.pub 的公钥文件。私钥文件是用于进行 SSH 连接的私钥,而公钥文件可以公开分享给其他人,用于验证你的身份。


以下是生成 SSH 密钥对的简单示例:

ssh-keygen -t rsa -b 4096

上述命令将生成一个类型为 RSA、位数为 4096 位的新密钥对,并将私钥文件保存到默认路径(~/.ssh/id_rsa)中,公钥文件保存到默认路径(~/.ssh/id_rsa.pub)中。

请注意,生成的私钥文件应保持安全,不要将其共享或发送给其他人。公钥文件可以公开分享给需要与你建立 SSH 连接的人。

其它用法:

生成一个默认类型的RSA密钥对,并保存在默认路径:
ssh-keygen

生成一个指定长度的RSA密钥对,并保存在指定路径:
ssh-keygen -t rsa -b 4096 -f /root/.ssh/id_rsa

生成一个DSA密钥对,并添加注释:
ssh-keygen -t dsa -C "my_dsa_key"

从已有的私钥文件读取密钥信息,并显示公钥:
ssh-keygen -e -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

显示公钥文件的指纹信息:
ssh-keygen -l -f ~/.ssh/id_rsa.pub

以上就是ssh-keygen命令的详细说明和示例用法,具体参数可以根据实际需求进行调整。


常用的秘钥类型

ssh-keygen 命令支持多种密钥类型,包括但不限于以下几种:

  1. RSA:使用 RSA 算法生成的密钥对。这是最早在 SSH 中使用的算法之一。
  2. DSA:使用 DSA 算法生成的密钥对。由于安全性的原因,DSA 现在已经不太常用。
  3. ECDSA:使用 ECDSA 算法生成的密钥对。该算法使用椭圆曲线密码学,适合用于较小的密钥长度和较高的安全性需求。
  4. ED25519:使用 ED25519 算法生成的密钥对。这是一种基于 Schnorr 签名方案的密钥类型,具有快速加解密和较高的安全性。

要使用不同的密钥类型,可以在运行 ssh-keygen 命令时使用 -t 选项指定所需的类型。例如,要生成一个 ED25519 密钥对,可以运行以下命令:

ssh-keygen -t ed25519

这将生成一个名为 id_ed25519 的私钥文件和一个名为 id_ed25519.pub 的公钥文件。

示例

这里演示SSH 公钥(gitee)设置

Gitee 提供了基于 SSH 协议的 Git 服务,在使用 SSH 协议访问仓库仓库之前,需要先配置好账户 SSH 公钥。

生成 SSH 公钥

Windows 用户建议使用 Windows PowerShell 或者 Git Bash,在 命令提示符 下无 cat 和 ls 命令。

1、通过命令 ssh-keygen 生成 SSH Key:

ssh-keygen -t ed25519 -C "Gitee SSH Key"
  • -t key 类型
  • -C 注释

输出,如:

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/git/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/git/.ssh/id_ed25519
Your public key has been saved in /home/git/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:ohDd0OK5WG2dx4gST/j35HjvlJlGHvihyY+Msl6IC8I Gitee SSH Key
The key's randomart image is:
+--[ED25519 256]--+
|    .o           |
|   .+oo          |
|  ...O.o +       |
|   .= * = +.     |
|  .o +..S*. +    |
|. ...o o..+* *   |
|.E. o . ..+.O    |
| . . ... o =.    |
|    ..oo. o.o    |
+----[SHA256]-----+
  • 中间通过三次回车键确定

2、查看生成的 SSH 公钥和私钥:

ls ~/.ssh/

输出:

id_ed25519  id_ed25519.pub
  • 私钥文件 id_ed25519
  • 公钥文件 id_ed25519.pub

3、读取公钥文件 ~/.ssh/id_ed25519.pub:

cat ~/.ssh/id_ed25519.pub

输出,如:

ssh-ed25519 AAAA***5B Gitee SSH Key

复制终端输出的公钥。

设置账户 SSH 公钥?

用户可以通过主页右上角 「个人设置」->「安全设置」->「SSH 公钥」->「添加公钥」 ,添加生成的 public key 添加到当前账户中。

需要注意: 添加公钥需要验证用户密码

通过 ssh -T 测试,输出 SSH Key 绑定的用户名

$ ssh -T git@gitee.com
Hi USERNAME! You've successfully authenticated, but GITEE.COM does not provide shell access.
点击这里复制本文地址 以上内容由goocz整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

果子教程网 © All Rights Reserved.  蜀ICP备2024111239号-5