红茶的个人站点

  • 首页
  • 专栏
  • 开发工具
  • 其它
  • 隐私政策
Awalon
Talk is cheap,show me the code.
  1. 首页
  2. 开发工具
  3. 正文

使用 RSA 密钥进行 SSH 连接

2023年8月3日 985点热度 0人点赞 0条评论

平时用 SSH 连树莓派和虚拟机每次都要输入密码,比较烦人。Windows Terminal 出于安全原因是不支持记录密码进行自动连接的功能的,所以还是老老实实创建 RSA 密钥进行连接好了。

生成 RSA 密钥对

Windows 上可以用 Putty Key Generator 这个工具生成 RSA 密钥对:

image-20230803200747567

点击菜单 key->Generate key pair。

在打开的页面点击 Generate 按钮生成密钥对,等待一会后就可以生成一对 RSA 密钥。

image-20230803205627775

RSA 密钥对本质上是两个用 RSA 算法生成的字符串,将对应的字符串保存起来就是密钥文件,可以用于身份验证。

理论上只要保存私钥(private key)就可以了,因为私钥是可以生成公钥的。但方便起见我们最好还是将私钥和公钥都保存起来。

点击 Save public key 将公钥保存到本地文件,可以用 .pub 作为文件后缀以表示这是 RSA 公钥。

点击 Save private key 将私钥保存到本地文件,文件以 .ppk 作为后缀进行保存。

保存私钥的时候会提示是否在没有设置密码的情况下保存,如果是用途比较敏感的私钥,可以额外添加密码来保护私钥,这样可以防止私钥丢失后被人恶意利用。

部分程序(比如 Windows Terminal)进行身份验证时使用的是 pem 私钥而非 ppk 私钥,所以最好转换一份 pem 私钥进行保存。

将 ppk 私钥转换成 pem 私钥很容易,通过 Conversions->Export OpenSSH Key 菜单即可,选择一个目录进行保存,文件后缀名使用 .pem。

服务器公钥添加

为了能让服务器验证我们的私钥,需要将其对应的公钥保存到 Linux 服务器。

在需要用密钥进行登录的用户目录下创建一个 .ssh 目录:

[icexmoon@192 ~]$ mkdir .ssh

在 ~/.ssh 目录创建一个文件 authorized_keys,并将刚生成的公钥内容写入:

[icexmoon@192 ~]$ cd .ssh
[icexmoon@192 .ssh]$ vim authorized_keys

写入的公钥内容是ssh-rsa xxxxx,这里的xxxxx指代实际的公钥内容。

注意ssh-rsa后边有一个空格。

SSH 客户端设置

还需要修改 SSH 客户端的设置,让其在连接目标服务器时使用私钥进行验证。

具体的设置方式因 SSH 客户端的不同而不同,我这里使用的是 WindowsTerminal。

Windows 系产品进行 SSH 连接时都用同样的设置方式,比如 VSCode 也同样如此。

打开C盘用户目录下的 .ssh 目录,比如我这里是 C:\Users\70748\.ssh。

里边有一个 config 文件,打开并编辑(如果没有就创建)。

config 文件的格式如下:

Host 192.168.1.1
  HostName 192.168.1.1
  User root
  Port 22
  ForwardAgent yes
  IdentityFile "C:\Users\70748\.ssh\test.pem"

没太多好说的,应该很容易看懂,这里的 IdentityFile 就是用于登录验证的私钥文件。

The End,谢谢阅读。

参考资料

  • ppk如何转为pem

  • LINUX使用RSA 密钥登录

  • 配置RSA密钥使用ssh协议登录远程服务器

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: RSA SSH Windows Terminal
最后更新:2023年8月3日

魔芋红茶

加一点PHP,加一点Go,加一点Python......

点赞
< 上一篇
下一篇 >

文章评论

取消回复

*

code

COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务

Theme Kratos Made By Seaton Jiang

宁ICP备2021001508号

宁公网安备64040202000141号