Windows10系统下使用VS code远程连接集群(在有跳板机的情况下)
一、使用PowerShell安装适用于Windows10的OpenSSH
step1: 使用快捷键Windows+X
,接着按A
或点选「Windows PowerShell(管理员)」,以管理员身份打开PowerShell。
step2: 输入指令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
step3: 输入指令Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
,这是为了安装OpenSSH客户端,安装成功时应打印:
Path :
Online : True
RestartNeeded : False
在本地机器上,我们只需要安装客户端即可,不需要安装服务端。
二、在本地机器上生成SSH key
step1: 使用快捷键Windows+X
,接着按A
或点选「Windows PowerShell(管理员)」,以管理员身份打开PowerShell。
step2: 输入指令ssh-keygen -t rsa -b 4096
,生成公钥和私钥,在C:\Users\XXX\.ssh
目录下(XXX是你的用户名),id_rsa是私钥,本地机器持有,千万不可外泄,千万不能丢失。id_rsa.pub是公钥,后面需要进一步操作。
三、远程服务器配置
用你自己的方式连接到远程服务器(我用的是MobaXterm),把本地机器上的ssh公钥(C:\Users\XXX\.ssh\id_rsa.pub
里面的内容)加到服务器的authorized_keys(~/.ssh/authorized_keys)里面。
四、安装Visual Studio Code
五、在插件市场中搜索Remote SSH并安装
六、配置VS code设置
step1: 点击VS code边栏的远程连接图标。
step2: 点击SSH TARGETS右边的齿轮状⚙️按钮。
step3: 在弹出来的C:\Users\XXX\.ssh\config
文件中添加下面内容,根据自己的用户名以及想要连接的跳板机(也即Host jump
)和服务器(也即Host target
)填写好各个字段,Ctrl + s
保存。
Host jump
HostName [跳板机url或者ip地址]
User [你的username]
ForwardAgent yes
Host target
HostName [目标服务器url或者ip地址]
User [你的username]
ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -W %h:%p jump
七、连接到服务器
step1: 点击target右边的小按钮,在弹出的窗口里面分别输入verification code和password即可连接到服务器,这一步可能需要多尝试几次,要注意verification code的有效时间。
step2: 连接到远程服务器之后,打开VS code的资源管理器,点击“打开文件夹”按钮,即可选择自己想要打开的工程文件夹,然后VS code会重新建立连接,再次输入verification code和password即可!
注:VS code是自带ssh服务的,所以理论上我们不需要安装OpenSSH,但是使用VS code自带的ssh时会出现
试图写入的管道不存在的错误
,这可能是由于vscode自带的ssh的实现有问题(https://github.com/microsoft/vscode-remote-release/issues/1398),因此我们需要自行安装OpenSSH。
注:有一个大佬级别的教程,技术细节比我这篇博客多,如果遇到无法解决的问题,可以参考一下:链接