vscode 使用ssh进行远程开发 (remote-ssh)

介绍

visual studio code remote - ssh 可以通过ssh连接远程主机、虚拟机,打开远程文件夹,并利用vscode 的插件优势进行远程开发、调试等。
file

步骤

一、配置环境

因为remote-ssh 的ssh连接是基于openssh实现的,以及后续我们需要使用生成ssh密钥需要git,所以我们需要准备:

  • OpenSSH
  • Git版本不低于1.9

如果你已经安装了以上环境,请移步到下一个步骤。

1、git安装

可以参考这篇博客:Git 详细安装教程(详解 Git 安装过程的每一个步骤)
git安装过程中,会出现是否需要捆绑OpenSSH,根据自己的使用习惯选择。

2、OpenSSH安装

上面选捆绑请忽略。

你可以通过这篇微软的文档进行安装:安装 OpenSSH
不过我这里也会也会赘述一遍步骤:

#用管理员身份运行PowerShell
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
# 安装OpenSSH客户端 (这里我们只需要客户端)
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
3、确认安装

当你安装成功后,可以在控制台确认是否安装

git
file

ssh
file

二、在vscode添加remote ssh插件

选择左侧栏的扩展,并搜索remote ssh
它大概长这样,点击安装
file

安装成功后,在左侧栏会出现远程连接的图标,点击后选择ssh旁加号便可以进行连接。
file

三、连接

选择连接后将会出现以下内容
file
输入 ssh 主机用户名@主机地址 -A 连接远程主机(输入-A 在配置文件中会产生ForwardAgent yes 目的是希望使用本地电脑里的密钥登录,且不想把这个密钥发送到堡垒机)进行配置。

此时,右下角会显示连接或者打开配置文件的选项,你可以直接连接,也可以打开配置文件,(第一次好像会让你选择一个并生成配置文件,直接选择user/用户名/.ssh下即可)

如果打开配置文件会出现一下内容
file

选择密码认证

没有点直接连接,点击远程旁边的刷新按钮就可以。
选择主机连接,选择平台,输入密码,就可以远程连接到远程主机了
(如果平台选择错误可以在vscode设置中输入remote.SSH.remotePlatform修改它)
file

选择连接后,会产生一个新的空窗口,你可以始终参考左下角查看查看你的连接状态
file

连接成功后,可以在资源管理器打开你的项目文件。
file

不过使用密码验证,每次连接都要重新输入密码,十分麻烦,可以选择,使用ssh密钥的身份验证,就不用反复输入。

选择ssh密钥认证

1、在本地终端生成密钥

这里提供两种方法
方法1:直接输入ssh-keygen,跟着程序的引导来选择

ssh-keygen

方法2:预先指定参数,请确保你已经安装了git,且版本大于1.9

# -t 加密类型 -b 指定指定要创建的密钥的位数
ssh-keygen -t rsa -b 4096

更多参数设置:oracle手册----ssh-keygen

这里我演示第二种。
口令默认为空,你可以选择使用口令保护私钥文件。如果你不想在每次使用 SSH 协议访问仓库时,都要输入用于保护私钥文件的口令,可以在创建密钥时,输入空口令,即直接回车
file

此处私钥保存在C:\Users\20447/.ssh/id_rsa
公钥保存在C:\Users\20447/.ssh/id_rsa.pub

2、将公钥复制到远程主机,并安装

将公钥复制到远程主机的~/.ssh文件下。
你可使用FTP或者SFTP传输到主机,这里我用FileZilla作为文件传输工具(如果你对使用FileZilla管理文件有需求的话,使用时建议使用root用户登入,因为一些文件操作权限不够无法操作)
file

在远程主机端上安装公钥

cd .ssh
cat id_rsa.pub >> authorized_keys #安装公钥

设置文件权限提高安全性

chmod 600 authorized_keys  #所有者可读写
chmod 700 ~/.ssh           #所有者可读可写可执行

3、回到 vscode 在之前配置文件中添加 IdentityFile $私钥路径$
选SSH旁边的设置快速移至config文件
file

file

保存后重新连接,就不用一直用密码认证了。

四、关于配置文件

前面说过remote-ssh时基于openssh的插件,所以配置文件遵循 openssh SSH 配置文件格式(sshd_config),可以使用ssh格式进行配置。

这里选择只列举常用的配置格式,如果你有想了解或者有更多需求请,参考sshd_config(5) — Linux manual page

Host $远程主机名$   #可以自定义,目的是知道自己用什么主机
  HostName $远程主机IP$
  User $用户名$
  Port $ssh端口$   #不写默认22
  IdentityFile $本机SSH私钥路径$
  ForwardAgent yes $希望使用本地电脑里的密钥登录,且不想把这个密钥发送到堡垒机,之前添加 -A生成$

如果你需要连接多个主机,在配置文件,按上述配置添加多个这个

Host $远程主机名1$
  HostName $远程主机IP1$
...

Host $远程主机名2$
 HostName $远程主机IP2$
...

Host n...

五、安装插件到远程主机

在连接上远程主机后,可以在安装页面主动选择安装位置。
file

根据自己的需要在vscode安装、卸载或禁用在远程主机中的插件,为远程开发提供便利。
file

六、关于可能出现的问题,导致连接失败

因为我按上述操作时没有出现问题,关于问题这一点,我建议出错时,搜索时使用openssh作为关键词作为出发点,并且留意下角的输出窗口,判断错误类型。
一些错误问题,可以下方参考1中的解决细节

这里提供一种错误解决方法

  • 如果你因为某种原因重置系统或者重置ssh,导致无法连接
    可能是因为原先的主机密匙和现在的主机密匙不一致,
    可以尝试删除 c:\user\用户名.ssh 中的known_hosts文件,
    该方法有点粗糙,如果你有新的见解,欢迎在评论区留言。

七、其他连接方式

除了ssh连接方式,还有WSL,Dev Containers等连接方式,VS code均有扩展,你可以安装自己的开发习惯选择
file

参考:

1、VSCode使用Remote SSH连接远程服务器
2、使用 SSH 进行远程开发

### 回答1: 在WSL2中安装VSCode扩展程序"ms-vscode-remote.remote-ssh"可以让我们在WSL2环境中使用SSH远程连接功能。以下是安装步骤: 1. 首先,确保已在WSL2环境中安装了VSCode。可以通过在WSL2终端中运行以下命令来安装VSCode: ``` sudo apt-get update sudo apt-get install code ``` 2. 打开VSCode,点击左侧的"扩展"图标(或按下Ctrl + Shift + X快捷键),在搜索框中输入"ms-vscode-remote.remote-ssh"。 3. 在搜索结果中,找到"Remote - SSH"扩展,并点击"安装"按钮进行安装。 4. 安装完成后,点击"重新加载"按钮来激活扩展。 5. 安装完成后,可以在VSCode底部状态栏找到一个小飞机图标。点击该图标,选择"Remote-SSH: Connect to Host...",然后选择"Configure SSH Hosts"。 6. 在打开的"~/.ssh/config"文件中,添加SSH连接配置信息。例如,对于连接到远程主机的情况,可以添加以下配置: ``` Host <host_name> HostName <host_ip_address> User <username> IdentityFile <path_to_private_key> ``` 其中,<host_name>是主机名称,<host_ip_address>是主机IP地址,<username>是登录用户名,<path_to_private_key>是SSH私钥文件的路径。 7. 保存并关闭配置文件后,再次点击底部状态栏中的小飞机图标,选择刚添加的主机配置。 8. 若SSH连接成功,将会在VSCode中打开一个新的窗口,并显示在远程主机中的文件和文件夹。 通过按照以上步骤,在WSL2中安装VSCode扩展程序"ms-vscode-remote.remote-ssh",我们就可以轻松地使用SSH远程连接功能了。这使得在WSL2环境中开发和管理远程主机变得更加方便和高效。 ### 回答2: 在WSL2环境中安装VS Code的远程SSH扩展(extension/ms-vscode-remote.remote-ssh),可以让我们在本地的Windows系统上使用VS Code远程连接到Linux服务器进行开发和调试。 首先,我们需要确保已经在WSL2中安装了VS Code。可以通过在WSL2的Linux终端中运行以下命令来安装VS Code: ``` $ sudo apt update $ sudo apt install code ``` 安装完成后,再按照以下步骤安装远程SSH扩展: 1. 在WSL2中打开VS Code。 2. 点击左侧的扩展按钮(四个方块图标)。 3. 在搜索框中输入“remote-ssh”。 4. 在搜索结果中找到“Remote - SSH”扩展,点击安装。 5. 安装完成后,点击右下角的重新加载按钮。 安装完成后,我们就可以通过远程SSH连接到Linux服务器了。点击VS Code左下角的“远程窗口”图标,选择“连接到主机…”。输入服务器的SSH地址、端口号和用户名,点击连接。 进入了远程连接后,我们可以在本地的VS Code中进行编辑、调试等操作。所有文件和操作都会直接在Linux服务器上进行,增加了开发和调试的便利性。 需要注意的是,在安装和使用远程SSH扩展时,确保WSL2和Linux服务器之间能够正常通信,且在服务器上已经安装和启动了SSH服务。这样,我们才能顺利地在WSL2环境中使用VS Code的远程SSH扩展。 ### 回答3: 在WSL 2中安装VSCodeRemote SSH插件(extension/ms-vscode-remote.remote-ssh)可以实现远程SSH连接到其他服务器,非常方便进行开发和调试工作。 首先确保已经在WSL 2上安装了VSCode。打开VSCode,点击左侧侧边栏的扩展按钮(插件图标),搜索并找到"Remote - SSH"插件,并点击"安装"按钮进行安装。 插件安装完成后,点击VSCode下方的绿色图标选择一个状态栏的地方,然后选择"Remote-SSH:Connect to Host..."。 在弹出的输入框中,输入SSH连接的目标服务器地址,例如"username@192.168.0.1",然后按Enter键。 接下来,需要输入您的SSH密码或者私钥密码进行身份验证。验证成功后,VSCode将会建立与目标服务器的SSH连接,并打开连接后的终端。 在终端中,您可以执行各种命令和操作,与目标服务器进行交互。 安装成功后,您可以再次点击左侧的侧边栏扩展按钮,在搜索栏中输入"Remote - SSH",然后找到并点击安装"Remote - SSH: Editing Configuration Files"插件。这个插件可以在VSCode中轻松编辑SSH配置文件,以便更方便地管理和连接到多个远程服务器。 总而言之,通过以上步骤,就可以在WSL 2中安装并使用VSCodeRemote SSH插件了。这个插件极大地扩展了VSCode开发和调试方面的功能,能够轻松连接到远程服务器进行开发工作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值