VS Code Remote 远程开发配置

VS Code Remote可以直接在远程机器上进行开发调试。此处记录一下Win 10下配置VS Code使用SSH连接实验室远程Ubuntu 16开发调试的步骤。

环境:Win 10 Build 19025, Ubuntu 16.04.6 LTS

安装

安装SSH

使用SSH进行连接,客户端需要安装SSH Client,服务端需要安装SSH Server。由于Win10自带SSH Client,Ubuntu16也已有SSH Server,所以这里不用再安装。如需安装:

Win10 SSH Client,请参考 https://docs.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse

CentOS SSH Server使用如下命令:

1
sudo yum install openssh-server && sudo systemctl start sshd.service && sudo systemctl enable sshd.service

Ubuntu SSH Server使用如下命令:

1
sudo apt-get install openssh-server

安装 VS Code Remote-SSH扩展

在VS Code扩展中心搜索并安装Remote-SSH扩展。读者也可选择Remote Development扩展包,该扩展包包括Remote-SSH,Remote-Containers和Remote-WSL三个扩展。

配置SSH连接

1、生成SSH密钥

VS Code需要使用基于SSH密钥的身份验证才能连接到主机。Windows下公钥一般存储在 C:\Users\用户名\.ssh\id_rsa.pub,macOS/Linux下则位于~/.ssh/id_rsa.pub。根据系统检查相应位置是否已有SSH密钥,如果没有则打开命令提示符使用下面命令生成:

1
ssh-keygen -t rsa -b 4096

2、把公钥(id_rsa.pub)添加到远程机器的authorized_keys中

在Windows下,打开命令提示符,执行下面命令:

1
2
3
4
5
SET REMOTEHOST=root@192.168.126.128

scp C:\Users\用户名\.ssh\id_rsa.pub %REMOTEHOST%:~/tmp.pub

ssh %REMOTEHOST% "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat ~/tmp.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm -f ~/tmp.pub"

这里192.168.126.128是远程机器的IP地址,root是登录用户。

VS Code中连接远程机器

按F1弹出VS Code的命令选项板,输入Remote-SSH: Connect to Host,回车,选择Configure SSH Hosts,并打开C:\Users\用户名\.ssh\config文件,配置远程主机。如下所示

1
2
3
4
5
Host Centos7
 
    HostName 192.168.126.128
 
    User root

现在在左边栏可以看到你配置的机器,

选择主机连接,VS Code建立连接后就可以通过File > Open.或File > Open Workspace直接打开远程机器上的文件或文件夹进行开发调试了。

参考资料

[1] https://code.visualstudio.com/docs/remote/ssh#_getting-started

[2] https://code.visualstudio.com/docs/remote/troubleshooting#_configuring-key-based-authentication

[3] https://code.visualstudio.com/docs/remote/troubleshooting#_installing-a-supported-ssh-client