当前位置: 首页 > ai >正文

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 相关文件

[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"]  // 依据实际参数配置

        }

    ]

}

http://www.xdnf.cn/news/2822.html

相关文章:

  • 2025年具身智能科技研报
  • C++函数模板基础
  • 【专题五】位运算(1):常见位运算操作总结
  • DeepSeek: 探索未来的深度学习搜索引擎
  • 第十六届蓝桥杯 2025 C/C++组 脉冲强度之和
  • Origin绘图操作:点线图符号显示不全解决方法
  • 接入层架构演变
  • Nginx 核心功能与 LNMP 架构部署
  • C#解析USB - HID手柄上摇杆按键数据
  • Ubuntu 20.04 安装 ROS 2 Foxy Fitzroy
  • xilinx的XCI文件设定输出目录
  • MIT XV6 - 1.1 Lab: Xv6 and Unix utilities - sleep 是怎样练成的?
  • [AI]browser-use + web-ui 大模型实现自动操作浏览器
  • 元宇宙2.0:当区块链成为数字世界的宪法
  • 【C++初阶】--- 模板进阶
  • (三十二)Android开发中AppCompatActivity和Activity之间的详细区别
  • 01_微服务常见问题
  • 如何利用Rust提升Linux服务器效率(详细操作指南)
  • dma_request_slave_channel_compat 与 dma_request_channel 的区别
  • 【C语言操作符详解(二)】--结构成员访问操作符,操作符的属性,表达式求值
  • springboot中有关数据库信息转换的处理
  • __VUE_PROD_HYDRAION_MISMATCH_DETAILS__在vue.config.js怎么配置
  • 外部存储器接口:EMIF总线
  • Jetson Xavier NX EMMC版本刷机
  • 机器人--相机
  • 【MCP Node.js SDK 全栈进阶指南】高级篇(4):自定义传输层开发
  • 前端在平常的开发中高度还原ui图的思考规范
  • 阿里开源Qwen3:大语言模型的新突破
  • AI驱动软件工程:SoftEngine 方法论与 Lynx 平台实践分析
  • 「Mac畅玩AIGC与多模态08」开发篇04 - 基于 OpenAPI Schema 开发专用 Agent 插件