VSCode 作为最强的的一款编辑器,其强大之处在于其友好的操作界面和丰富的插件,除了为各种编程语言增加了插件外,对于 SSH 远程连接和 WSL 等都也有对应的插件,极大的方便了使用 VSCode,同时也能最大限度地利用 VSCode 强大的功能。本篇主要介绍的是使用 ssh 插件 Remode-SSH 进行远程连接 Linux 进行开发。

安装Remote-SSH插件并配置

注意:请确保你的 Linux 已安装 SSH 服务,否则请先在 Linux 上安装 OpenSSH-Server,这里不赘述其安装过程。
首先打开 VSCode 的插件搜索界面,搜索 Remote-Developoment 并安装,因为这个插件同时会安装所有 Remote 系列插件。
安装好后,开始配置地址信息,按 Ctrl+Shift+P,输入 ssh,找到 Open Configuration File 选项,选择打开本地用户下 .ssh/config 文件,然后输入自己的 Linux 机器的配置信息,如下:

Host CentOS7HostName 192.168.1.1User codepeak

如果你想要配多个服务器配置,可以按照相同格式配多个,这里只配两个基本配置,还有其他更多高级配置选项请查阅官方文档。
现在将左边的远程资源管理器的选项切换为 SSH Targets,就会看到我们上面配的配置的 Linux 主机,选择一个 Linux 右键点击 Connect to Host in Current Windows 就会在本窗口建立远程连接,之后弹出的会话框,点击选择 Linux,点击 Continue,然后输入你配置的 Linux 账户的密码即可。连接成功后,会在左边资源管理器中出现:已连接到 SSH:XXX。然后再打开你的工作目录就可以和在 Windows 上一样编辑代码了。
使用 Ctrl + Shift + ~ 可以调出 Linux 终端,或者点击资源管理器中的文件右键在集成终端打开,就可以打开 Linux 终端,方便输入 Linux 命令。
到这里,VSCode 基本的远程连接功能已经 OK 。如果你可以成功连接,恭喜你使用愉快,如果不成功就需要继续往下看。

遇到的问题

当然,事情总是不可能那么顺利,有的机器可以顺利连接,有的机器上会报出一个和管道相关的错误,其总结的解决方法如下:

  1. 可能是你的 Linux 服务器的 SSH 配置有问题,通过修改配置测试是否解决问题(小概率)。
  2. 删除服务器上创建的 .vscode-server 目录,这是在个人用户主下创建的隐藏目录(可以使用 ls -la 命令显示隐藏的文件),可能是一些不正确的数据被缓存在那里,因此删除目录将使您的情况更加整洁。删除后,可以尝试通过vscode上的remote-ssh重新连接(中概率)。
  3. 如果你服务器都没有 .vscode-server 文件夹,但还是连接不上,基本可以确定就是你 SSH 的问题了。原因是 Windows 10 自带了openssh 客户端,自带的客户端存在这个问题 vscode 的官方文档给出了相应的解决方式,参考 Local SSH file and folder permissions,如果还是不行,需要直接安装 Git,因为 Git 自带 openssh-client,可以将 ssh-client 指向为 git 软件中的 ssh 程序(大概率)。

打开 Git Bash 查看 ssh 可执行文件的安装路径:where ssh.exe

$ where ssh.exe
C:\Program Files\Git\usr\bin\ssh.exe
C:\Windows\System32\OpenSSH\ssh.exe

第二个路径即为 windows 自带的 ssh-client。
可以将 windows 自带的 ssh-client 卸载掉,参考 mircosoft官方的介绍卸载 OpenSSH-Client (也可以不卸载,直接修改环境变量中 ssh 为 Git 的 SSH)。
然后将 git 软件携带相应的 ssh-client 可执行文件路径设置到系统的环境变量中。找到系统变量的 Path,删除原来的 OpenSSH,加入上面的 C:\Program Files\Git\usr\bin\ssh.exe 即可。

使用密钥免密码登录

每次远程连接,或者打开新的路径都需要输入密码,多少会有些繁琐,我们可以通过配置密钥直接免密码登录。
客户端配置
必须确保本地 Windows 已经安装了 ssh,下面这些命令都是在安装的 Git 自带的 git bash 终端中输入。
首先生成 SSH 秘钥对 :

ssh-keygen -t rsa -b 4096

(-b 4096表示生成的 rsa 秘钥对的长度是 4096 个 bit) 在输入该指令后,会让我们指定秘钥文件的生成目录,可以直接回车跳过,生成的目录在c:\user\用户名\.ssh此目录下生成:id-rsaid-rsa.pub两个文件,第一个是私钥文件,第二个是公钥文件,用户名称是你自己的电脑用户名。
服务器端配置
首先检测 ssh 服务是否启动:

netstat -ntlp | grep ssh

修改 SSH 的配置文件:

vim /etc/ssh/sshd_config

这里最重要的是要把PubkeyAuthentication配置为yes允许使用基于密钥认证的方式登录。
最后,将客户端的公钥id-rsa.pub文件上传到对应用户根目录的 .ssh 文件夹下,进入 .ssh 中将公钥的内容拷贝到authorized_keys文件中
bash

cp id_rsa.pub authorized_keys

然后设置相应文件的权限

chmod 700 .ssh
chmod 600 .ssh/authorized_keys

VS的Remote-SSH插件配置
设置 vscode 的 Remote - SSH 插件配置文件:

Host CentOS7HostName X.X.X.XUser XXXIdentityFile  C:\Users\WINDSUN\.ssh\id_rsa

配置好后,如果无法连接,可以尝试重新使用 ftp 将本地公钥上传到 Linux 上,然后再将其复制到 authorized_keyse 文件中,设置权限,重启 SSH 服务器,重新连接。
在使用公钥第一次连接到 Linux 时候,可能会让你输入密码。连接完成后,会在你的用户 .ssh 目录中中生成一个文件 known_hosts,这个目录中还有公钥和私钥 id-rsa.pub 和 id-rsa 文件,然后将公钥上传到服务器上,重新重复上面的复制到 .ssh/authorized_keys,并且重新设置权限,再重新尝试连接到 Linux,就不需要再输入密码了。

离线安装vscode-server

参考:
https://www.cnblogs.com/sinicheveen/p/13812278.html
https://zhuanlan.zhihu.com/p/294933020
上面说的情况都是在 Linux 机器有网络情况下,Linux 上会自动安装 .vscode-server,然后 vscode 作为客户端直接连接即可,但是有些情况下并没有网络,比如内网开发,如果我们想要使用 VSCode 连接 Linux,上面的操作行不通,我们需要先在 Linux 下安装 vscode-server,其安装时有很多注意点,具体如下所述。
1、获取 VSCode 的 commitid,打开 VSCode 的帮助->关于,然后出现了一些版本信息,点击复制,内容大概如下:

版本: 1.58.1 (user setup)
提交: 2aeda6b18e13c4f4f9edf6667158a6b8d408874b
日期: 2021-07-13T06:58:28.115Z
Electron: 12.0.13
Chrome: 89.0.4389.128
Node.js: 14.16.0
V8: 8.9.255.25-electron.0
OS: Windows_NT x64 10.0.17763

2、从 https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable下载 vscode-server-linux-x64.tar.gz 压缩包文件。
注意:这里的 ${commit_id} 就是你的版本号,比如:2aeda6b18e13c4f4f9edf6667158a6b8d408874b。
例如上面的提交版本下载地址就是:

https://update.code.visualstudio.com/commit:2aeda6b18e13c4f4f9edf6667158a6b8d408874b/server-linux-x64/stable

3、运行下面两行命令,在 Linux 上建立空的 $HOME/.vscode-server/bin 文件夹。

mkdir -p ~/.vscode-server/bin
rm ~/.vscode-server/bin/* -rf   #把$HOME/.vscode-server/bin下的内容删干净,防止出错

4、将 vscode-server-linux-x64.tar.gz 上传在服务器上的 $HOME/.vscode-server/bin 文件夹中,解压。

cd ~/.vscode-server/bin
tar -zxf vscode-server-linux-x64.tar.gz
mv vscode-server-linux-x64 ${commit_id}   # 注意把:${commit_id}替换成对应的Commit ID

5、在 ~/.vscode-server/bin/${commit_id} 目录下创建一个文件,文件名为 0

touch 0

小技巧:如果要将新的服务器上的 VSCode Server 上安装插件包,最快的办法就是直接将已安装完插件的服务器上的 $HOME/.vscode-server/extensions 目录打包,解压到新服务器上对应位置。插件包一般没有版本要求,因此 VSCode Server 版本不同也能正常使用。

VSCode配置Remote-SSH连接Linux远程开发相关推荐

  1. vscode中使用ssh连接linux(树莓派)opencv不能使用imshow()函数输出图片和视频的解决方法

    1.vscode使用插件ssh树莓派 2.树莓派中./test能直接调用,但是vscode命令行不能报错 Can't initialize GTK backend in function 'cvIni ...

  2. java通过SSH连接linux远程服务器操作命令

    pom依赖 <dependency><groupId>ch.ethz.ganymed</groupId><artifactId>ganymed-ssh2 ...

  3. VSCode 中利用 Remote SSH 连接远程服务器

    北京时间 2019 年 5 月 3 日,在 PyCon 2019 大会上,微软发布了 VS Code Remote.这是一个用来实现远程开发的功能插件,对于许多使用 Windows 进行开发,但是需要 ...

  4. VScode使用SSH连接Linux(Ubuntu)系统程序开发,详细教程

    VScode使用SSH连接Linux(Ubuntu)系统程序开发,详细教程 VScode使用SSH连接Linux(Ubuntu)系统程序开发 1.安装SSH 2.SSH连接远程服务器 3.远程编程开发 ...

  5. VSCode 连接 Linux 远程服务器

    一.前言 我们在跑机器学习或深度学习模型的时候通常会使用 GPU,但大多数人自己本地电脑的 GPU 不是太好甚至没有 GPU.所以我们通常会选择实验室服务器或者云服务器去跑模型,一般我们会先在本地电脑 ...

  6. VSCode的连Linux远程开发碰到的坑解决

    安装Remote-SSH并配置 首先打开你的VSCode,找到Extensions,搜索Remote,下载Remote-Developoment插件,会自动安装其他的Remote插件,其中会包含Rem ...

  7. wireshark linux远程,如何在SSH连接Linux的环境下使用wireshark抓包云边端架构?

    原标题:如何在SSH连接Linux的环境下使用wireshark抓包云边端架构? TSINGSEE青犀视频云边端架构EasyNVR.EasyDSS.EasyGBS等都是有两种操作系统的版本,一种是li ...

  8. 远程ssh连接Linux服务器,隔一段时间就断了

     远程ssh连接Linux服务器,隔一段时间就断了  http://zhidao.baidu.com/link?url=DGP85x4WlVwYbdzg3HbkViPHmJo_TFkJRgUmh1 ...

  9. python远程ssh连接linux

    python远程ssh连接linux 1.安装第三方库paramiko pip install paramiko 2.创建ssh客户端,并连接 ssh = paramiko.SSHClient()# ...

最新文章

  1. h5打开App的方法。
  2. python是什么编程教程-python教程看完了,还是不会编程?
  3. 面试官问我有环链表中怎么找到入口,本以为很简单当场却想傻了
  4. 电脑键盘下划线怎么打_电脑键盘右边的数字键无法使用怎么办?
  5. mysql必知必会第一节
  6. java输出当前文件所在路径
  7. oseasy还原卡_学校机房管理批量更新软件的问题还原卡、网刻、噢易OSS对比区别...
  8. BP神经网络模型介绍
  9. BIOS int 10H中断介绍
  10. Linux导出未越狱Iphone10.3-QQ聊天记录
  11. 易课堂之算法注册机编写1
  12. JavaWeb查漏补缺
  13. HTML+CSS零基础学习笔记(五)— 模拟淘宝首页(静态)
  14. android分享微信朋友圈带编辑功能吗,终于被我等到了,微信新版本能编辑别人的朋友圈啦!...
  15. 五行顺口溜_纳音五行口诀
  16. 如何标题编号自动生成_标题编号的自动生成+自动修改的方法步骤
  17. graph sage 翻译
  18. Fibonacci扩展(奶牛问题)
  19. 转行程序员日记---2020-10-16【最近有点累】
  20. Stata实证:一键显著代码免费教程,拯救你的论文

热门文章

  1. 又到了「金三银四」跳槽季,大家都是在哪个平台找到工作的呢?
  2. 显示杂谈(6)-万能的demura?
  3. c语言电脑上怎么打出来,c语言中表示或者的符号“||”在电脑上怎么打出来?...
  4. 计算机组成原理实验移位运算,计算机组成原理移位运算实验.docx
  5. windows环境下MySQL8.0.30的下载安装
  6. sudo insmod pin4driver.ko
  7. 模电——MOS管接下拉电阻
  8. 笔记——英语励志名言
  9. python——自定义函数
  10. c++ 内存映射文件进程间共享数据