在 VSCode 上使用 SSH 登陆我们实验室的服务器的时候需要每次都输入密码。虽然很早之前就知道可以配置 SSH 公钥实现免密登陆,但是当时我被配置公钥这几个字唬住了,以为是一件很繁琐的事情。这次硬着头皮配置了一下没想到这么简单,只需要两步就能够彻底消灭 SSH 的密码。

两步实现

生成公钥

我生成的是 rsa 算法的公钥,比较方便,如果有需要也可以更改为别的加密算法。

在 Windows 的终端中直接输入以下指令:

1
ssh-keygen -t rsa

弹出的提示全部按回车跳过即可。

执行完毕后将会在当前用户根目录的 .ssh 文件夹(在 Windows 下是 C:\Users\%在这里替换为你的用户名%\.ssh)中生成文件名为 id_rsa.pub 的 rsa 公钥。

如果你需要连接多个 SSH 服务器或是以前已经配置过公钥了,就无需执行这步生成新的公钥,直接使用第一次配置的 .pub 文件就行了

将公钥发送给服务器

输入以下指令将上一步生成的公钥发送给服务器。在这里, Windows 下的文件路径正反斜杠不敏感:

1
scp C:/Users/%在这里替换为你的用户名%/.ssh/id_rsa.pub %服务器用户名%@%服务器的ip%:~/.ssh/authorized_keys

例如,我可以输入 scp C:/Users/alrisha/.ssh/id_rsa.pub root@10.127.55.11:~/.ssh/authorized_keys ,这表明我将我的公钥通过 scp 指令传送到地址为 10.127.55.11 的服务器的 root 用户的 /.ssh/authorized_keys 文件夹,并且告诉服务器我是 root 用户。

这一步需要你最后输入服务器 SSH 的密码。成功后无论在终端还是 VSCode 中都无需密码就能登陆服务器了。