如何使用vscode 在远程服务器上直接写代码

准备工作 配置SSH密钥

这里以CentOS为例
配置SSH密钥登录CentOS
生成密钥对
进入当前用户目录,一般root用户只需要这样即可

cd ~

创建.ssh目录并设置权限

mkdir -p .ssh
chmod 700 .ssh

进入 .ssh 目录和生成密钥对

cd .ssh
ssh-keygen

然后,一路回车即可

密钥文件按照默认方式,在主目录/root下的隐藏目录.ssh中生成,分别为id_rsa和id_rsa.pub,其中

id_rsa:是你的私钥,你应该保存到你的【可信任的设备】上并在服务器上删除该文件

id_rsa.pub:是你的公钥,保存在服务器上

接着生成密钥认证文件

touch authorized_keys
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys

至此,你的第一部分已经完成了,你所做的需要将你的密钥文件id_rsa妥善保存在你的本地电脑,并将服务器上生成的密钥文件id_rsa删除

修改SSH配置
使用root登录修改配置文件:/etc/ssh/sshd_config

vi /etc/ssh/sshd_config

将下面的内容的前面的 # 去掉

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys

然后,修改下面的内容的 yes 为 no

PasswordAuthentication yes

最后修改后效果为

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
···
PasswordAuthentication no

最后重启SSH服务

CentOS 6.x:

service sshd restart

CentOS 7.x:

systemctl restart sshd

以上就是前置的全部工作了

正文开始

安装 remote ssh 插件

接下来我们就继续打开插件商店,搜索栏输入 remote ssh:

如何使用vscode 在远程服务器上直接写代码-搬砖酱的笔记

还是选择第一个,然后安装。 安装完之后,左侧板导航栏就多了一个远程连接的图标,点进去

如何使用vscode 在远程服务器上直接写代码-搬砖酱的笔记

点击设置项目

如何使用vscode 在远程服务器上直接写代码-搬砖酱的笔记

选择系统中存放 .ssh 的目录:

如何使用vscode 在远程服务器上直接写代码-搬砖酱的笔记

选择完之后,他就会初始化这个目录下的 config 文件中的配置。这边有两个是我之前用来拉取内部库和线上 github 的配置, 并没有远程服务器的配置。

配置并连接到远程服务器

接下来我在这个 config 文件上,添加我要远程连接的服务器的配置项,包括用户和对应的key文件, 格式如下:

Host 192.168.13.156
    HostName 192.168.13.156
    User kbz
    IdentityFile C:/Users/admin/.ssh/id_rsa_airdroid_server
  • Host 这个可以自己取,反正就是左边侧边栏显示的名称
  • HostName 远程服务器 ip
  • User 远程登录账号
  • IdentityFile 远程ssh校验 rsa 文件
如何使用vscode 在远程服务器上直接写代码-搬砖酱的笔记

添加完之后,ctrl + s 保存,左边的 target 会同步更新。 接下来点击这个,直接连接到这台服务器:

如何使用vscode 在远程服务器上直接写代码-搬砖酱的笔记

这时候会弹出另外一个窗口,连上之后,就点击左边栏的文件图标,然后点击打开文件夹。

如何使用vscode 在远程服务器上直接写代码-搬砖酱的笔记

这时候会让你选择要打开的目录,直接用默认的用户目录即可。

如何使用vscode 在远程服务器上直接写代码-搬砖酱的笔记

连接上之后,就跟 IDE 一样,左边是远程服务端的目标目录的目录结构, 右边是编辑代码的框。

如何使用vscode 在远程服务器上直接写代码-搬砖酱的笔记

我们打开一个文件,然后直接编辑。 完了之后, ctrl + s, 直接保存:

如何使用vscode 在远程服务器上直接写代码-搬砖酱的笔记

而且还可以跟其他的 IDE 一样,在下面,打开 终端端口, 查看 - 终端, 这时候下面就可以看到终端了,就跟 xshell 4 一样,直接输入命令就可以交互了。

如何使用vscode 在远程服务器上直接写代码-搬砖酱的笔记

如果在终端下进行文件增加和删除,左边的目录栏会实时更新。如果对右边编辑栏中的文件内容进行修改。右边编辑栏的文件内容也会实时更新。而且关掉之后,在左边 target 那边是有记录的,下次直接点击这个服务器下的文件夹,就直接连接到这台服务器,并打开对应的目录了。

如何使用vscode 在远程服务器上直接写代码-搬砖酱的笔记

后面如果还连接其他的远程服务器,只需要在 .ssh/config 文件中,直接补上这一台服务器的 ssh 登录的相关信息即可。
总结

这样子必要时刻就可以在远程服务器上直接编辑文件写代码了。除了调试代码方便之外,有些针对一些软件的非常长的配置文件,编辑的时候,也会比用 vim 好用非常多。

转至:https://kebingzao.com/2020/02/26/vscode-remote-ssh/