VS Code + Linux 远程开发 go

一、Linux (192.168.12.13)

安装、配置 go 环境

开启ssh服务

二、Windows(192.168.12.12)

不需要 go 环境!!!

1、安装 ssh客户端(ssh.exe)

git 安装包中有 ssh.exe,可通过安装 git 获得 ssh 客户端

添加 ssh.exe目录至 path环境变量

2、安装 VS Code

(1)安装插件 "Remote - SSH"

注意,此时插件安装在 Windows 本机

(2)侧边栏,出现新图标 " 远程资源管理器"(Remote Explorer)

点击 SSH 右侧的 New Remote

输入 ssh root@192.168.12.13

选择 C:\Users\XXX\.ssh\config

文件内容:

Host 192.168.12.13

HostName 192.168.12.13

User root

Port 登录远程主机的端口号(SSH 默认为 22)

IdentityFile 本地的私钥文件 id_rsa 路径

若需要连接多个远程服务器,上述内容复制多份修改即可。

在 Remote Explorer 窗口中点击 Refresh,SSH下显示远程机器列表

点击列表项后的 Connect in Current Window...

选择 Linux

continue

输入远程机器密码

第一次连接,OUTPUT 窗口显示在远程 Linux 机器安装和启动 vscode-server 的过程

连接成功后,TERMINAL 窗口显示远程 Linux 机器的终端命令行界面,可执行各种命令

像操作本地环境一样,在 VS Code 中操作远程 Linux 主机上的文件

(3)打开 VS Code TERMINAL 窗口,在 Linux上新建测试目录 test,编写 go 代码文件

go mod init

vscode自动提示安装所需的插件

注意,此时插件安装在远程 Linux 主机。

( VS Code 扩展页会显示 本机 和 远程主机安装的插件)

三、Linux 会被自动安装 vscode-server 相关文件

bash 复制代码
[root@localhost go-test]# find / -name "*vscode*"

/run/user/0/vscode-ipc-dd8d3090-7e55-4b88-bbac-2e010e8d2c1d.sock

/run/user/0/vscode-git-02c6fc5579.sock

/run/user/0/vscode-ipc-74213b7d-cbee-4614-952c-d65a5f14e7e0.sock

/run/user/0/vscode-git-2d394bc00e.sock

/run/user/0/vscode-ipc-f70b9abb-acaf-4a04-beff-ee0e96e07ba6.sock

/root/.vscode-server

/root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/vscode-remote-lock.root.e4503b30fc78200f846c62cf8091b76ff5547662

/root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/extensions/ms-vscode.js-debug-companion

/root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/extensions/ms-vscode.js-debug

/root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/extensions/configuration-editing/schemas/devContainer.vscode.schema.json

/root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/extensions/debug-auto-launch/.vscode

/root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/extensions/ms-vscode.vscode-js-profile-table

/root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/node_modules/vscode-textmate

/root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/node_modules/vscode-regexpp

/root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/node_modules/vscode-regexp-languagedetection

/root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/node_modules/@vscode

/root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/node_modules/@vscode/vscode-languagedetection

/root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/node_modules/vscode-encrypt

/root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/node_modules/vscode-encrypt/build/Release/vscode-encrypt-native.node

/root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/node_modules/vscode-proxy-agent

/root/.vscode-server/bin/e4503b30fc78200f846c62cf8091b76ff5547662/node_modules/vscode-oniguruma

/root/.vscode-server/extensions/golang.go-0.35.2/media/vscode.css

/root/.vscode-server/data/User/globalStorage/vscode.json-language-features

/root/.vscode-server/data/User/workspaceStorage/cb9f3b3db6a18c2b166ede9a924b38e5/vscode.lock

/tmp/vscode-typescript0

/tmp/vscode-goWiRjgh

/usr/local/go-path/pkg/mod/golang.org/x/tools@v0.0.0-20191109212701-97ad0ed33101/cmd/gopls/integration/vscode

/usr/local/go-path/pkg/mod/golang.org/x/tools@v0.0.0-20191109212701-97ad0ed33101/cmd/gopls/integration/vscode/.vscode

[root@localhost go-test]#

四、VS Code 免密连接远程 Linux

1、Windows 生成公私钥

C:\Program Files\Git\usr\bin\ssh-keygen.exe -t rsa

C:\Users\XXX\.ssh 目录下生成两个文件:id_rsa,id_rsa.pub

2、将公钥复制到远程 Linux

scp C:\Users\XXX\.ssh\id_rsa.pub root@192.168.12.13:~/.ssh

.ssh 目录不存时需创建

3、Linux

cd ~/.ssh

cat id_rsa.pub > authorized_keys

4、Windows 验证免密

ssh root@192.168.12.13

无需再输入密码

五、配置

1、.vscode/lauch.json

{

// Use IntelliSense to learn about possible attributes.

// Hover to view descriptions of existing attributes.

// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387

"version": "0.2.0",

"configurations": [

{

"name": "Launch",

"type": "go",

"request": "launch",

"mode": "auto",

"program": "${workspaceFolder}",

"cwd": "${workspaceFolder}",

"env": {},

"args": "-x" // 依据实际参数配置

}

]

}

相关推荐
RisunJan4 小时前
Linux命令-rlogin(远程登录)
linux·运维
深圳恒讯4 小时前
菲律宾云服务器与传统VPS的架构差异
运维·服务器·架构
蓝天下的守望者4 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
小林ixn4 小时前
从“玩具工具”到“跨语言利器”:MCP 协议实战解析
运维·服务器·网络
小顿的企业观察5 小时前
中企出海战略规划,正在从“走出去”转向“走进去”
大数据·运维·人工智能·产品运营·制造
数智化转型推荐官6 小时前
2026统一身份管理系统五大发展趋势解读
java·运维·微服务
看菜鸡互6 小时前
探索用 SlideML 让大模型生成 PPT 的实验方法
java·运维
大飞记Python7 小时前
Linux命令速查手册(测试开发4年实战总结,附PDF)
linux·网络·pdf
liguojun20258 小时前
篮球馆自动计时收费系统:从规则配置到自动结算的全流程拆解
java·大数据·运维·人工智能·物联网·1024程序员节
Promise微笑8 小时前
红外分辨率 160×120、320×240、384×288 与 640×480实战选型指南
大数据·运维·人工智能·物联网