Vscode Remote Ssh

vscode remote development how to .

VSCODE远程开发

简介

微软家的开发工具从来不缺少远程开发,从二十年前的visual stuidio 6到现在的visual stuidio 2022都具有远程开发的功能。
那么号称宇宙第一IDE的vscode当然不会例外,vscode对远程开发的支持通过扩展remote-ssh来实现。
visualstudio的远程开发参考 https://docs.microsoft.com/zh-cn/visualstudio/debugger/remote-debugging
vscode的远程开发参考 https://code.visualstudio.com/docs/remote/remote-overview

构架

我们看一下vscode远程开发的结构示意图

arch

LocalOS是vscode(remote-ssh)使用的客户端主机,RemoteOS是安装vscode server(具备真实开发环境的服务器)等服务端。
我们操作LocalOS上的vscode通过ssh遥控RemoteOS上的代码,完成开发、调试工作。

目标

在LocalOS Mac上远程调试 RemoteOS debian11.3上的golang中间件。

准备工作

RemoteOS安装openssh-server,build-essential,golang(Debian11源中的golang版本比较老,可以从https://golang.google.cn/dl/下载新版本安装)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
apt-get update && apt-get install -y openssh-server build-essential

wget https://golang.google.cn/dl/go1.18.1.linux-amd64.tar.gz
tar -zxvf ./go1.18.1.linux-amd64.tar.gz -C /usr/local/

echo -e "#\n# Golang GOROOT/bin\n export PATH+=:`/usr/local/go/bin/go env GOROOT`/bin" >>~/.bashrc
echo -e "#\n# Golang GOPATH/bin\n export PATH+=:`/usr/local/go/bin/go env GOPATH`/bin" >>~/.bashrc
source .bashrc

go env -w  GO111MODULE=on
go env -w  GOPROXY=https://goproxy.cn,direct

go version
go version go1.18.1 linux/amd64

LocalOS安装vscode和vscode扩展remote-ssh。

1
2
3
4
5
6
7
brew update
brew install visual-studio-code
code --install-extension ms-vscode-remote.remote-ssh

code -v
1.66.2
arm64

LocalOS SSH生成~/.ssh/ssh_rsa和~/.ssh/ssh_rsa.pub。
把ssh_rsa.pub加入到RemoteOS /root/.ssh/authorized_keys。
LocalOS使用ssh_rsa登入root@remoteOS。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/mymac/.ssh/id_rsa): ~/.ssh/ssh_rsa  
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

scp ~/.ssh/ssh_rsa.pub bob@10.10.10.10:/home/bob/ssh_rsa.pub
...
ssh bob@10.10.10.10
...
su root -l
...
cat /home/bob/ssh_rsa.pub >>~/.ssh/authorized_keys
...
exit
...
exit
...
ssh -i .ssh/ssh_rsa root@10.10.10.10
root@d113:~#

小试牛刀

LocalOS使用密钥ssh到RemoteOS成功后就可以打开vscode使用远程开发了。
接下来基本都是图形化操作,可以参考https://code.visualstudio.com/docs/remote/ssh-tutorial
对于每一个RemoteOS都可以有如下配置,配置保存在~/.ssh/config文件里。

1
2
3
4
5
Host debian remote server
  HostName 10.10.10.10
  User root
  ForwardAgent yes
  IdentityFile /Users/mymac/.ssh/ssh_rsa

在vscode中,我们SSH到一台RemoteOS就像我们本地LocalOS开发一样简单。

Licensed under CC BY-NC-SA 4.0
最后更新于 2023-05-23 20:59 CST