windows生成RAS密钥
介绍
RAS
秘钥是一种用于身份验证的密钥对,属于非对称秘钥,由公钥和私钥组成。公钥可以公开分享,用于验证身份;私钥需要保密,用于签名和加密数据。
生成秘钥
- 创建秘钥的存储目录
进入用户目录下的.ssh
创建一个文件夹,如:MT
$ cd .ssh
$ mkdir MT
进入MT
文件夹创建一个文件夹,如:id_ed25519
$ cd .\MT\
$ mkdir id_ed25519
$ ls
目录: C:\Users\matia\.ssh\MT
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2025/1/7 23:17 id_ed25519
- 生成秘钥
我们可以选择使用 ed25519
算法(推荐)或传统的 RSA
算法。
使用 ed25519
算法(推荐)如下:
$ ssh-keygen -t ed25519 -C "your_email@example.com"
使用 RSA
算法:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-C "your_email@example.com"
:为你的 SSH
密钥添加一个标签,通常是你的 GitHub
邮箱地址。 -b 4096
:指定 RSA
密钥的长度为 4096
位(仅适用于 RSA
密钥)。
不指定生成密钥存放的地址,默认地址为C:\Users\matia/.ssh/id_ed25519
:
$ ssh-keygen -t ed25519 -C "your_email@example.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\matia/.ssh/id_ed25519):
生成密钥存放到我们我们指定地址,地址为刚刚创建的文件夹。
$ ssh-keygen -t ed25519 -C "your_email@example.com" -f C:\Users\matia/.ssh/MT/id_ed25519/mt_github_id_ed25519
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\matia/.ssh/MT/id_ed25519/mt_github_id_ed25519
Your public key has been saved in C:\Users\matia/.ssh/MT/id_ed25519/mt_github_id_ed25519.pub
The key fingerprint is:
SHA256:S7Kx3uA0P+yY4Ftn4FcS0h6gqEAUmr6m3WOO7DMFUsU your_email@example.com
The key's randomart image is:
+--[ED25519 256]--+
|.+.o. . |
|o...E. o |
|+.. . . + |
|+.. o o |
|.o . + S . |
| . .. B + |
| o .. O.= |
|ooo+o* @o |
|..===o=.+. |
+----[SHA256]-----+
注意 地址需要指明使用的文件名称,如上mt_github_id_ed25519
就是我们的秘钥文件名。
查看密钥文件:
$ cd .\id_ed25519\
PS C:\Users\matia\.ssh\MT\id_ed25519> ls
目录: C:\Users\matia\.ssh\MT\id_ed25519
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2025/1/7 23:22 411 mt_github_id_ed25519
-a---- 2025/1/7 23:22 101 mt_github_id_ed25519.pub
查看并拷贝公钥
$ cat .\mt_github_id_ed25519.pub | clip
之后就可以使用秘钥了,比如在GitHub
中添加秘钥,通过秘钥访问,这样就剩去了每次都要输入密码的麻烦了。
注意 前面所有的命令均在Windows PowerShell
中执行的。
总结
怎么感觉在Windows
的PowerShell
中操作和Linux
中的操作这么像,连目录都差不多! 查了一下:随着 Windows 10
及之后版本对 Linux
子系统(WSL, Windows Subsystem for Linux
)的支持,以及 PowerShell
的不断发展,两者之间的界限正在逐渐模糊。