【开发工具】【windows】Visual Studio Code(VS Code)远程Linux服务器环境搭建——SSH篇

简介: 【开发工具】【windows】Visual Studio Code(VS Code)远程Linux服务器环境搭建——SSH篇

缘起


基于以下考虑,需要搭建VS Code的远程开发环境:


  • Windows环境下,VS Code访问本地代码比较容易,但由于最终版本要在Linux服务器上编译,所有本地代码最终或merge或ftp覆盖,都要额外操作一次;


  • 访问Linux服务器上的文件,也可通过samba映射本地磁盘来操作。但有时出于信息安全的考虑,可能需要限制samba等服务。


使用vscode搭建远程开发环境的整体架构如下:



环境及软件


  • Win 10下VS Code


– Remote SSH


– Remote Development


– SSH FS


– Compare Folders


  • RHEL7下VS Code


– VS Code Server


– Compare Folders


除Compare Folders在服务器端安装外,其余都是在Windows本地安装。


操作过程


1、本地VSCode环境


  • 安装Remote SSH插件或Remote Development插件;


  • 配置文件:C:\Users\Administrator.ssh\config


Host 2.100


HostName 192.168.2.100


User qxhgd


Port 22 #可选,默认是22端口


IdentityFile C:\Users\qxhgd.ssh\id_rsa.pub #可选,对免密登陆可能有用


2、远程Linux服务器


在线安装


操作前提:


Linux服务器自身可以连接互联网;


VS Code已启用remote.SSH.allowLocalServerDownload选项


  • 使用vscode的remote SSH插件连接Linux服务器,则服务器会自动下载安装vscode server,最终目录结构如下:


[qxhgd@localhost ~]$ tree .vscode-server -L 3
.vscode-server
├── bin
│   └── 3866c3553be8b268c8a7f8c0482c0c0177aa8bfa
│       ├── bin
│       ├── extensions
│       ├── LICENSE
│       ├── node
│       ├── node_modules
│       ├── out
│       ├── package.json
│       ├── product.json
│       ├── server.sh
│       └── vscode-remote-lock.qxhgd.3866c3553be8b268c8a7f8c0482c0c0177aa8bfa
├── data
│   ├── CachedExtensionVSIXs
│   │   └── kelvin.vscode-sshfs-1.21.2
│   ├── logs
│   │   └── 20210830T061527
│   ├── Machine
│   ├── machineid
│   └── User
│       └── globalStorage
└── extensions
    └── kelvin.vscode-sshfs-1.21.2
        ├── dist
        ├── media
        ├── package.json
        ├── README.md
        ├── resources
        ├── util
        └── webview
20 directories, 10 files


主要是bin部分,另外两部分是安装vscode其他插件生成的。


离线安装:


有的Linux服务器无法连接互联网,此时又需要用vscode连接服务器,此时就需要在离线的情况下安装vscode ;


  • Windows环境下获取VSCode的Commit ID


vscode->帮助->关于:


这里“提交”后面的字符串就是Commit ID:


版本: 1.59.1 (user setup)


提交: 3866c3553be8b268c8a7f8c0482c0c0177aa8bfa


日期: 2021-08-19T11:56:46.957Z


Electron: 13.1.7


Chrome: 91.0.4472.124


Node.js: 14.16.0 V8: 9.1.269.36-electron.0


OS: Windows_NT x64 10.0.18363


  • 下载对应版本的vscode server,文件名为vscode-server-linux-x64.tar.gz:


https://update.code.visualstudio.com/commit:3866c3553be8b268c8a7f8c0482c0c0177aa8bfa/server-linux-x64/stable


这里的commit和windows下的vscode的提交(commit)建议一致;


  • 在Linux服务器上按照之前在线的目录结构,在$HOME下照着建一份:


mkdir -p ~/.vscode-server/bin
rm ~/.vscode-server/bin/* -rf


  • 在Linux服务器上按照之前在线的目录结构,在$HOME下照着建一份:


cd ~/.vscode-server/bin
tar -zxvf vscode-server-linux-x64.tar.gz
mv vscode-server-linux-x64 3866c3553be8b268c8a7f8c0482c0c0177aa8bfa
touch 3866c3553be8b268c8a7f8c0482c0c0177aa8bfa/0  #有的教程里提到这个命令,但是实际在线安装的时候,也没有这个文件,估计不需要,或者说新版本不需要。


3、访问远程目录


  • 点击“打开文件夹”即可:



4、免密登陆


  • 每次登陆都输入密码很浪费时间,通过如下操作可实现免密登陆:


mkdir .ssh         #.ssh可能已经存在,注意不要覆盖
mv id_rsa.pub .ssh #id_rsa.pub是windows下ssh通过ssh-keygen生成的rsa公钥,如果该目录已经存在id_rsa.pub,不要mv覆盖,直接用上层目录的id_rsa.pub生成authorized_keys
cd .ssh
cat id_rsa.pub >> authorized_keys
sudo chmod 600 authorized_keys
service sshd restart #不重启可能也能生效;


其他操作技巧


  • 可以给远程VS Code安装插件,原则上本地能安装的,服务器上都能装;


  • 文件对比:


a、可使用VS Code自带的文件比较工具:code --diff file1.cs file2.cs


b、也可使用VS Code的Compare Folders插件;


c、vscode自带菜单:右键第一个文件->选择以进行比较,右键第二个文件->选择与已选项目进行比较


  • 如果本地vscode更新版本,上述过程有可能(不绝对)要重新操作一遍。


  • 使用久了,则.vscode-server/data目录会有大量缓存,建议定时清理一下。


  • cpptools插件,禁用


Remote SSH外的选择


  • 使用win-sshfs(纯windows下独立软件,和vscode无关),可以将Linux服务器文件挂载到本地;


  • 使用VS Code自带的SSH FS插件:



SSH FS用于传输文件方便些,但是用于浏览检索代码,不怎么给力了。


  • github1s、githubdev( 打开 GitHub 仓库主页,按一下小数点“.”这个键可直接跳转)支持在页面中的VSCode打开github仓库,其他服务器类的,可参考搭建或实现。


参考资料








相关文章
|
Java 开发工具
鸿蒙Flutter实战:02-Windows环境搭建踩坑指南
本指南介绍如何搭建鸿蒙Flutter开发环境,包括下载Flutter SDK、配置环境变量(如FLUTTER_STORAGE_BASE_URL、PUB_HOSTED_URL、DEVECO_SDK_HOME等)和检查工具版本。还提到避免项目路径过深、与SDK同盘存放等注意事项,以及解决VsCode无法识别设备的方法。
708 0
|
Ubuntu Linux 网络安全
在Linux云服务器上限制特定IP进行SSH远程连接的设置
温馨提示,修改iptables规则时要格外小心,否则可能导致无法远程访问你的服务器。最好在掌握足够技术知识和理解清楚操作含义之后再进行。另外,在已经配置了防火墙的情况下,例如ufw(Ubuntu Firewall)或firewalld,需要按照相应的防火墙的规则来设置。
642 24
|
11月前
|
Linux
Linux下版本控制器(SVN) -服务器端环境搭建步骤
Linux下版本控制器(SVN) -服务器端环境搭建步骤
452 0
Linux下版本控制器(SVN) -服务器端环境搭建步骤
|
存储 IDE Linux
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
1365 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
|
11月前
|
安全 网络协议 Linux
Linux查 ssh端口号和服务状态
本指南详细介绍如何检查SSH服务的运行状态,包括通过进程命令验证服务启动、查看监听端口、检测系统服务状态以及防火墙配置。同时提供安全建议,如修改默认端口、禁用密码登录和定期更新系统,确保SSH服务稳定与安全。适用于不同Linux发行版(Systemd/SysVinit),帮助用户全面排查和优化SSH配置。
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
545 10
|
安全 Linux 网络安全
Linux端的ssh如何升级?
Linux端的ssh如何升级?
1344 59
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
存储 安全 Linux
离线Linux服务器环境搭建
【9月更文挑战第3天】在离线环境下搭建Linux服务器需按以下步骤进行:首先确定服务器用途及需求,准备安装介质与所需软件包;接着安装Linux系统并配置网络;然后设置系统基础参数,如主机名与时区;安装必要软件并配置服务;最后进行安全设置,包括关闭非必要服务、配置防火墙、强化用户认证及定期备份数据。整个过程需确保软件包的完整性和兼容性。
588 3
|
开发者 C# Windows
WPF与游戏开发:当桌面应用遇见游戏梦想——利用Windows Presentation Foundation打造属于你的2D游戏世界,从环境搭建到代码实践全面解析新兴开发路径
【8月更文挑战第31天】随着游戏开发技术的进步,WPF作为.NET Framework的一部分,凭借其图形渲染能力和灵活的UI设计,成为桌面游戏开发的新选择。本文通过技术综述和示例代码,介绍如何利用WPF进行游戏开发。首先确保安装最新版Visual Studio并创建WPF项目。接着,通过XAML设计游戏界面,并在C#中实现游戏逻辑,如玩家控制和障碍物碰撞检测。示例展示了创建基本2D游戏的过程,包括角色移动和碰撞处理。通过本文,WPF开发者可更好地理解并应用游戏开发技术,创造吸引人的桌面游戏。
1033 0