VSCode配置Remote-SSH连接Linux远程开发

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 CentOS7
    HostName 192.168.1.1
    User 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 CentOS7
    HostName X.X.X.X
    User XXX
    IdentityFile  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 版本不同也能正常使用。

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: VS Code 的 Remote-SSH 功能可以让用户通过 SSH 连接远程Linux 服务器,从而在 VS Code 中进行远程开发。使用 Remote-SSH 连接 Linux 服务器需要先在本地安装 VS Code,并安装 Remote-SSH 插件。然后在 VS Code 中打开命令面板,输入“Remote-SSH: Connect to Host”,选择“Add New SSH Host”并填写远程服务器的 IP 地址、用户名和密码等信息。连接成功后,用户可以在 VS Code 中打开远程服务器上的文件、编辑代码、调试程序等操作。 ### 回答2: ### 回答3: VS Code是一个非常优秀的轻量级开发工具,支持各种语言的开发和调试,尤其在python开发中使用愉快。Remote SSH,是VS Code很重要的一项功能,它允许我们在本地电脑上使用VS Code来连接远程Linux服务器,直接在VS Code上编写、调试和运行代码。 使用Remote SSH连接Linux可以带来如下几个优势。 1、本地开发和调试:通过Remote SSH,我们可以在本地开发和调试与远程服务器上相同环境下的代码,节约了安装和配置本地环境的时间和劳动力,而且在本地VS Code上可以使用各种插件,方便开发和调试。 2、便利性:通过Remote SSH,我们可以随时随地连接远程Linux服务器,无需额外的软件和工具,简单方便。 3、安全性:通过Remote SSH连接,我们可以使用加密传输协议(SSH),在VS Code和Linux服务器之间进行安全通信,保障代码和数据的安全性。 如何进行Remote SSH配置呢? 1、安装Remote-SSH扩展插件。打开Visual Studio Code,Ctrl+Shift+X搜索Remote-SSH,安装并重启。 2、建立SSH连接。在Visual Studio Code左侧侧栏中点击Remote Explorer,点击“Add new SSH host...”,在弹出的框中输入要连接远程服务器信息,包括服务器地址、用户名、密码,然后保存并建立连接。 3、选择连接。在Remote Explorer中可以看到已经建立的远程SSH连接,选择需要连接远程服务器,点击“Connect Using SSH”,等待连接成功就可以开始远程开发了。 4、配置工作区。使用Remote SSH连接远程Linux服务器之后,需要对工作区进行配置,将需要使用的文件或目录挂载到VS Code的工作区中,这样就可以直接在VS Code编辑和调试代码了。具体的操作方法可以参考VS Code官方文档。 Remote SSH是VS Code提供的一个非常方便的功能,通过它我们可以实现本地开发远程连接之间的完美结合,提升代码开发和调试效率,同时保证代码安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code_peak

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值