最近更新于 2024-05-05 12:30
前言
一般 Linux 服务器是不会安装桌面的,尽可能节省资源消耗用于业务使用。开发、调试、修改用终端编辑器 vim、nano 之类的不是很方便,就可以选择使用 VScode 连接。
连接方式是基于 ssh,可以选择密码连接或者秘钥文件验证连接。使用密码连接时,每次连接(如切换项目)都要输入密码验证,要是本地 Linux 搞着玩设置一位数的密码都没啥问题,输密码也快,但要是公网服务器搞一位数密码,这不是轻松爆破。而且一般服务器也会关闭密码登录,只使用秘钥文件验证。VScode 使用秘钥文件连接的话就是自动读取文件验证,使用也更为方便。
测试环境
远端:树莓派 cm4 – 官方系统 2023.10(Debian 12)
VScode 端:Windows 11
配置
生成秘钥文件
打开 PowerShell,执行
# RSA 算法生成长度为 4096 位的密钥
ssh-keygen -t rsa -b 4096
设置文件生成路径,如果不修改,就是在当前的工作路径生成
后面设置密码什么的不用管,直接回车就行,完成
到生成路径可以看到两个文件,没有扩展名的是私钥,放在本地用于远程连接时验证的,pub 扩展名的公钥文件,里面的内容要放到远端服务器。
在远端配置公钥
用记事本打开 pub 文件(公钥),复制里面的所有内容
ssh 连接远端服务器,到服务器上执行
# 保证路径存在
mkdir -p .ssh
# 写入公钥
echo "【复制的公钥内容】" >> ~/.ssh/authorized_keys
ssh 连接测试
打开 PowerShell 执行,首次连接中输入 yes 回车确认一下就行
ssh -i 私钥文件路径 用户名@远端地址
连接成功
配置 VScode
安装 Remote – SSH 插件,另外两个辅助插件会自动一起安装
打开远程连接界面创建远程连接
输入
ssh 远端要登录的用户名@远端地址 -A
-A 参数可加可不加,这个是代理转发。如果本地远程连接一台远端,然后在远端上再远程连接另外一台服务器,那么可以使用本地的私钥,而不用在远端上生成秘钥,然后去远端的远端配置公钥,私钥都保存在本地,更为安全。
选择配置生成路径,默认回车就行
然后打开配置文件
Host 是设置名字,这个显示在连接列表;HostName 是远端地址;User 是登录的用户名;FowardAgent 就是前面 -A 参数配置的东西,然后自己加上一条
IdentityFile 私钥文件路径
刷新
点击右箭头在当前窗口连接
然后会自动安装 VScode 服务端
完成连接