windows平台下VSCode通过跳板机连接服务器

一、安装openssh

我会在后记部分解释为什么这步是必需的。好多人推荐都是使用windows的Powershell来安装:

  1. 以管理员身份运行window Powershell(windows键+x,然后选(A)[1]),然后键入如下两条命令[2]

第一条命令:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

(这条是用来检测是否有适合安装的openssh软件,正常情况下应有如下返回:)

Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

第二条命令:

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

(这条是用来安装openssh软件,如果安装完成应有如下返回:)

Path          :
Online        : True
RestartNeeded : False

二、配置ssh config

配置ssh config来实现跳板机访问可以极大地简化我们的连接流程。

一、打开ssh config文件(远程资源管理器 -> SSH Targets -> Configure -> ssh config)

二、配置ssh config

假设你的跳板机的ip地址为A,目标机器的地址为B,那么在你的config中写下如下配置并保存:

Host JumpMachine

    HostName A   # 跳板机的ip地址
   
    User username   # 你跳板机的用户名
    
    Port 22   # 跳板机登录端口 

Host TargetMachine
    
    HostName B  # 目标机的ip地址
    
    User username   # 你目标机的用户名
   
    Port 8080   # 目标机登录端口 
    ProxyCommand "openssh的安装路径"\ssh.exe -W %h:%p JumpMachine

其中”openssh的安装路径”因人而异(我的openssh的安装路径为C:\Windows\System32\OpenSSH\ssh.exe)。

如果一切正常的话,此时你在SSH Targets里就可以找到TargetMachine啦!点击旁边的小加号就可以开始远程连接啦!

后记

  1. 为什么一定要安装openssh?

因为在windows上VSCode使用的默认ssh工具存在实现上的问题 ,导致一旦我们直接使用默认ssh连接会有报错:”过程试图写入的管道不存在”(The process tried to write to a nonexistent pipe)。因此,我们务必安装openssh,并在设置ProxyCommand时使用安装好的openssh来进行连接。

2. ProxyCommand中每个参数的意义?

“-W”表示stdio forwarding模式,接着后面的%h是一个占位符,表示要连接的目标机,也就是Hostname指定的ip或者主机名。%p同样也是占位符,表示要连接到目标机的端口。这里可以直接写死固定值,但是使用%h和%p可以保证在Hostname和Port变化的情况下ProxyCommand这行不用跟着变化。

遇到的问题:

我通过windows的Powershell安装openssh,在使用vscode可以连接上跳板机,但是连不上远程服务器,总是报错“过程试图写入的管道不存在”,百思不得其解,最后发现是我的电脑上面的openssh是7.5版的,而连接远程服务器需要openssh是8.0版本及以上,否则就会出现各种bug。(查看版本命令,进入cmd,输入ssh -V,查看openssh安装位置使用命令where ssh),所以要将openssh版本由7.5更换为8.0解决此问题。

解决方法:

1,下载openSSH windows版

https://github.com/PowerShell/Win32-OpenSSH/releases

我安装的是64位版本 OpenSSH-Win64.ziphttps://github.com/PowerShell/Win32-OpenSSH/releases/download/v8.0.0.0p1-Beta/OpenSSH-Win64.zip

2,解压到C:\Windows\System32\OpenSSH目录。

3,配置环境变量,将OpenSSH写入到path中

这么操作后就可以了。

在Visual Studio Code (VSCode) 中通过SSH连接Linux或Unix服务器,你可以使用内置的Remote Development插件。以下是简单的步骤: 1. 安装插件: - 打开VSCode,点击左上角的扩展商店图标(⚙️),搜索"Remote Development"并安装。 2. 配置SSH密钥: - 点击`File` > `Preferences` > `Settings`,输入`.ssh`目录路径,通常是`$HOME/.ssh`,然后将`"remote.SSH.path"`设置为你SSH私钥的完整路径。 - 添加公钥到远程服务器的authorized_keys文件。如果没有,可以在本地生成一个新的SSH密钥对,然后把公钥的内容添加到远程服务器的~/.ssh/authorized_keys文件。 3. 创建新的SSH配置: - 使用命令`code .`打开当前工作目录作为远程项目。如果你还没有这样做过,会提示你创建一个新的配置文件`remote.config.json`。 - 在这个文件里,添加服务器配置,例如: ```json { "localRoot": "${workspaceFolder}", "remoteUser": "your_username", // 服务器用户名 "remoteHost": "your_server_ip_or_domain", "port": 22, // 如果不是默认端口 "connectionType": "ssh", "askPass": true // 如果需要密码登录 } ``` 4. 连接服务器: - 点击左下角的绿色"Play"按钮或者从菜单选择`Remote-Explorer: Connect to Host`来启动连接。 5. 登录验证: - 输入远程服务器的密码或者利用askPass功能选择密码文件。 现在你应该已经成功连接服务器了,可以像在本地一样编写、运行代码。记得保持安全,尤其是在公开网络上操作时。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值