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 进行远程开发

VSCode SSH是一种在Visual Studio Code编辑器中使用的插件,它允许你通过SSH协议安全地连接到远程服务器或虚拟机。通过使用SSH插件,你可以在本地编辑和调试远程服务器上的代码,而无需离开VSCode界面。SSH协议提供了安全的加密通信通道,确保你的数据在传输过程中得到保护。 要在VSCode使用SSH插件,首先你需要确保在虚拟机上安装了SSH服务,并在虚拟机中的authorized_keys文件中添加了你的公钥。你可以通过运行以下命令来打开authorized_keys文件,并将公钥内容粘贴保存退出:sudo vim ~/.ssh/authorized_keys。如果.ssh文件夹中没有该文件,可以新建一个。 此外,你还需要在VSCode中安装SSH插件。你可以通过打开VSCode,找到扩展商店,并搜索SSH插件进行安装。安装完成后,你可以按照插件的使用说明来配置SSH连接,并连接到你的远程服务器或虚拟机。 需要注意的是,如果你要连接到虚拟机,你需要确保在虚拟机中安装了适当的操作系统,例如CentOS或Ubuntu,并按照VirtualBox的安装说明进行安装。 总结起来,VSCode SSH是一种可以在VSCode使用的插件,通过SSH协议可以安全地连接到远程服务器或虚拟机。你需要在虚拟机中安装SSH服务并配置authorized_keys文件,同时在VSCode中安装并配置SSH插件,才能成功连接到远程服务器或虚拟机。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [VsCode配置ssh免密远程连接服务器](https://blog.csdn.net/weixin_46773333/article/details/128335416)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值