
VSCode SSH设置免密登录

平时一直都是使用 VSCode 连服务器的,不过每次连接服务器、打开新的文件夹甚至刷新的时候都需要重新输入一遍密码,如果是同时连接多个不同的服务器,这体验可真是有够差劲的了。在网上查了资料发现,VSCode 是支持通过 RSA(勾起了当年上网安课的回忆 😂)秘钥登录的,这里做下记录。
1.生成密钥对(前提是已安装好 Git)
首先请确认电脑上已经成功安装好了 Git,首先检查一下C:\Users\用户名\.ssh
文件夹,查看一下文件夹下是否包含 id_rsa
和 id_rsa.pub
如果没有,那么打开git bash
,输入如下命令生成 RSA 公钥和密钥(请使用自己 Github 账号绑定的邮箱):
1 | ssh-keygen -t rsa -C “[email protected]” |
执行这个命令时,可能会让你填一些信息,其实不用填,直接 Enter 即可。命令执行结束之后,你就能在C:\Users\用户名\.ssh
文件夹下看到公钥和私钥了。
2.上传公钥到服务器上
我们第一步得到的id_rsa.pub
实际上就是公钥,而id_rsa
是私钥。如何理解公钥和私钥的用法呢?简单来说,现在我有一幅画,然后我把这幅画直接放在银行大厅里,所有人都可以看见这幅画,但是大家都不知道这幅画表达的是什么意思,只有拿着解密卡(私钥)的我才能看懂这是什么意思。
上传公钥这里需要注意,你需要将id_rsa.pub
的内容复制到~/.ssh/authorized_keys
文件中。
路径开头的这个~
是什么意思?
这个符号其实和你使用的用户名有关。比如你使用的用户名是xiaoming,那么~
代表的可能就是/home/xiaoming/
;如果你当前使用的用户名是xiaoli123,那么~
代表的可能就是/home/xiaoli123
;如果你是用的是root用户,那么~
代表的就是/root/
当然一台服务器很可能是有很多人一起使用的,如果说每个人都需要上传一份自己的密钥,应该怎么办呢?这个问题不大,所有人都把自己的公钥都放在这个authorized_keys
文件中,只需要换行隔开就可以了。
1 | id_rsa.pub01..... |
这里需要注意,如果你只将公钥放在了用户A的authorized_keys文件里,那么有且仅有用户A是可以免密登录的,使用其他用户名还是不能免密登录。
所以,一定一定一定要注意用户名!!!。我看过的一些教程中默认配置的是root用户,公钥存放的路径也直接就在/root/
文件夹下,结果配完了我发现只有root用户可以免密登录,还找不到错误原因👿
3.在VSCode远程ssh连接
如果上面的步骤都配置成功了,那么配置文件其实只写正常的几项配置就已经可以免密登录了:
1 | Host xx |
这个部分有的教程里会填写其他配置信息,比如:
1 | Host dev |
但是经过我测试发现,不需要IdentityFile
也是可以免密登录的,而且那个PreferredAuthentications
加了之后反而连接时会不断报错
4.报错处理
(1)服务器上没有~/.ssh/authorized_keys
文件夹
这个问题好解决,直接创建一个.ssh
文件夹和authorized_keys
文件即可。
(2)文件权限问题
这个问题一般是在服务器上发生的,比如当你想修改authorized_keys
时日志报错说你没有足够的权限,或者访问.ssh
文件夹的时候就已经爆出权限错误了,只需要修改一下权限即可:
1 | chmod 700 ~ |
注意:如果使用的是root用户,请将~
改成/root
(3)sshd配置问题
有时候权限没有问题但还是连不上,这时可能是服务器的ssh配置中存在问题,这时候需要修改/etc/ssh/sshd_config
文件,取消注释某些项:
1 | #将这两行取消注释 |
修改好之后,还需要重启sshd:
1 | service sshd restart |
(4) Permissions for ‘xx/id_rsa’ are too open.It is required that your private key files are NOT accessible by others.
使用VSCode SSH 连接服务器时,很可能会在连接过程中报这个错误。这个错误的意思其实是 有多个用户可权限访问你的私钥文件,所以你的私钥文件访问权限不安全。
首先找到私钥文件,右键进入 安全-> 高级:
在这里 禁用继承,删除其他用户,只保留当前用户和SYSTEM即可:
- 标题: VSCode SSH设置免密登录
- 作者: fanz
- 创建于 : 2024-12-16 11:18:01
- 更新于 : 2025-04-16 09:19:54
- 链接: https://redefine.ohevan.com/sokh61/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。