Loading Image 1 Loading Image 2
Loading
VSCode使用SSH服务远程连接Windows服务器

前言

在远程调试Windows服务器端的代码时,如果直接通过远程桌面连接在服务器电脑上更改,需要在服务器上也下载VSCode程序,而且有可能会出现卡顿。更高效的的服务器编程方案是通过本地的VSCode连接远程服务器,直接在本地修改远程服务器的文件。

VSCode的远程连接方法包括隧道连接和SSH连接等方法。隧道连接方法很简单,只需要在客户端和服务器端的VSCode登录相同微软账号或Github账号,服务器端左下角点击用户图标打开远程隧道访问,即可在客户端远程连接。这种方法最后以VSCode提供的网页端的形式打开服务器的文件,也可以使用一些浏览器插件将网页添加为应用程序打开。SSH连接方法更为主流,在本地的VSCode上使用Remote-SSH服务连接到服务器,这种方法可以在本地VSCode程序中打开服务器文件。

网上大部分相关教程都是采用SSH方法进行连接,但Windows服务器通常没有安装Remote-SSH服务,直接在VSCode上连接是连接不上的,而这些教程没有给出Windows系统下SSH的安装方法。这篇文章主要介绍SSH的安装和连接测试。

Note
实际上两种方法的使用区别并不大,采用SSH连接后,只能使用部分本地插件,另一些插件需要在服务器端安装(服务器端没有安装的本地插件可以在扩展选项栏远程一键安装,比较方便);采用隧道连接的方式同样不能使用本地插件。此外,就连接方式而言,如果是连接Windows服务器,隧道连接方法更为简单;如果连接Linux服务器,由于服务器一般自带SSH服务,选择SSH连接更方便。
还有一个区别是SSH连接能在本地VSCode打开而不用打开网页,所以UI更好看一点点,而且可以看到本地的美少女壁纸×

安装与连接

首先检查要远程连接的服务器是否安装了SSH,在Powershell里运行命令:

Get-WindowsCapability -Online | Where-Object Name -like "OpenSSH*"

如果运行结果如下所示:

PS C:\Users\Administrator> Get-WindowsCapability -Online | Where-Object Name -like "OpenSSH*"


Name  : OpenSSH.Client~~~~0.0.1.0
State : Installed

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

则说明OpenSSH.Client已经安装了,可以作为客户端连接;但OpenSSH.Client还未安装,不能作为服务端连接。如果两项均显示“Installed”,则可以跳过安装步骤。在Powershell里运行以下命令进行安装:

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

启动服务:

Start-Service sshd

设置开机自启:

Set-Service -Name sshd -StartupType Automatic

检察服务是否启动:

Get-Service sshd

Status显示Running,说明启动成功了!SSH服务的默认监听端口为22,检查该端口是否被占用:

netstat -an | findstr :22

如果输出:

TCP    0.0.0.0:22             0.0.0.0:0              LISTENING

则说明22端口正在被SSH服务监听。腾讯云轻量应用服务器防火墙的22端口默认是开放的,若使用其他服务器,可以在服务器控制台的防火墙(或安全组)里检查是否开放。操作系统防火墙也最好用以下命令开放22端口:

New-NetFirewallRule -DisplayName "Allow SSH" -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow

接下来可以先尝试在本地终端里使用SSH连接服务器,连接前客户端电脑也要安装OpenSSH,可以参考服务器的安装命令进行安装,命令里的“Server”改为“Client”。安装后若没有报错就可以在本地执行SSH命令了,这里仍然建议在Powershell里运行。SSH远程连接命令为:

ssh username@your-server-ip -p 22

其中,username是服务器端的用户名,默认为Administrator。如果连接的是个人电脑,且使用微软账户登录,则username是微软账号邮箱。连接时可能提示The authenticity of host ‘*****’ can’t be established,根据提示输入yes就行了。然后按提示输入密码,注意不是电脑pin码,而是账户密码。

Tip
在输入密码时,无论输入什么光标都不会移动,实际上虽然光标一直停留在原处,但内容已经成功输入了,这是一种密码保护机制,只要正常输入密码回车即可

输入密码后可能会出现“Permission denied, please try again.”或者“Permission denied (publickey,password,keyboard-interactive)”的情况,在检查确认账号密码无误后,可以尝试修改SSH配置文件来解决(至少我是这样解决的)。输入命令打开sshd_config配置文件:

notepad C:\ProgramData\ssh\sshd_config

全选替换为以下内容:

Port 22
ListenAddress 0.0.0.0
PasswordAuthentication yes
PubkeyAuthentication yes

保存并退出,重新尝试SSH连接,如果输入密码后显示如下,则说明连接成功了。

administrator@your_server_ip C:\Users\Administrator>

接下来应该就可以正常在VSCode里连接了,关于这里的细节网上有很多教程,可以参考文末的链接。在VSCode里安装Remote-SSH插件,点击左侧左侧选项卡远程资源管理器选项,新增一个SSH的远程连接,连接命令和刚刚在Powershell里的命令完全一样,之后选择操作系统并按提示输入密码就可以了。

参考链接

vscode连接远程服务器(傻瓜式教学)-CSDN博客

vscodo ssh 远程连接_51CTO博客_vscode 远程连接ssh 远程配置

感谢您的阅读~如有错误欢迎指正
本文采用 CC BY-NC-SA 4.0 许可协议,允许非商业性使用、修改和共享。
暂无评论

发送评论 编辑评论


				
明风
星辰IL
樱田诗露
笑面教授
上一篇