如何使用 SSH 远程控制一台 Windows 服务器

举报
竹叶青 发表于 2019/11/10 22:56:15 2019/11/10
【摘要】 入职微软之后,这边大多数是使用 Windows 进行开发的,比如我的台式机是 Windows 的,还有一部分服务器是 Windows 的,当然 Linux 是也非常多。很多情况下我是使用自己的 Mac 笔记本来远程连接我的 Windows 机器来开发的。比如如果我在工位上,我会用我的 Mac 连接两块显示屏,然后一种一块用来远程桌面连接我的 Windows 开发机,这样另外一块屏幕和 Mac...

入职微软之后,这边大多数是使用 Windows 进行开发的,比如我的台式机是 Windows 的,还有一部分服务器是 Windows 的,当然 Linux 是也非常多。

很多情况下我是使用自己的 Mac 笔记本来远程连接我的 Windows 机器来开发的。比如如果我在工位上,我会用我的 Mac 连接两块显示屏,然后一种一块用来远程桌面连接我的 Windows 开发机,这样另外一块屏幕和 Mac 自带的屏幕就用来看文档或者使用 Teams 通讯等等。如果我回家了,我家里也是有两块屏,开上 VPN,照样用一块屏使用远程桌面,另外一块屏幕和 Mac 自带屏幕就可以做其他事情了。

这样就解决了一个问题:我的 Windows 基本上都是仅用作开发的,一块屏幕就开着一个 Visual Studio,其他的操作都会在 Mac 进行,比如查文档,发消息等等。这样我下班之后照样使用远程连接的方式来操作,和在公司就是一样的。这样就避免了一些软件的来回登录,比如如果我上班只用公司机器,下班了之后换了 Mac 还得切 Teams、切微信、切浏览器等等,还是很麻烦的,而且上班期间 Mac 就闲置了也不好。所以我就采取了这样的开发方案。

需求分析

有了这个情景,就引入了一个问题。开了一个远程桌面之后,我几乎一个屏幕都是被 Visual Studio 占据的,而远程桌面貌似只能开一个屏幕?如果我要再开一个终端窗口的话,那可能屏幕就不太够用了,或者它就得覆盖我的全屏 Visual Stuido。

另外我平时 Mac 终端软件都是使用 SSH 的,基本都是用来连 Linux 的,Windows 一般都是开远程桌面。但命令行这个情形的确让我头疼,让我感到不够爽,因为毕竟远程桌面之后,Windows 里面的操作都得挤在一个桌面里面操作了。当然可能能设置多个桌面,如果可以的话,麻烦大家告知一下谢谢。

所以解决的痛点在于:我要把一些操作尽量从 Windows 里面分离出来,例如终端软件,我能否在远程桌面外面操作,能否使用 SSH 来控制我的 Windows 机器。

好,有需求才有动力,说干就干。

配置

查了一下,Windows 上其实也是有 SSH 服务器的,只不过默认是没有装的,这里只需要安装一个 OpenSSH 服务器就好了。

Win10 的话,就在设置里面可以安装,从开始菜单打开“设置”,然后选择应用和功能,这里就有一个“管理可选功能”的选项。

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1应用和功能页面

点击之后便可以看到一个可选功能,选择 OpenSSH 服务器即可,一般情况下是没有安装的。如果没有安装的话它会提示一个安装按钮,这里我已经安装好了,就提示了一个卸载按钮。

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1管理可选功能页面

OK,有了它,直接点击安装即可完成 OpenSSH 服务器的安装。

当然如果你是想批量部署 Windows 服务器的话,当然是推荐使用 PowerShell 来自动化部署了。

首先需要用管理员身份启动 PowerShell,使用如下命令看一下,要确保 OpenSSH 可用于安装:

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

输出应该是类似的结果:

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

然后使用 PowerShell 安装服务器即可:

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

输出结果类似:

Path          :
Online        : True
RestartNeeded : False

这样也可以完成 OpenSSH 的安装。

安装完成之后,就需要进行一些初始化配置了,还是以管理员身份,使用 PowerShell 执行即可。

首先需要开启 SSHD 服务:

Start-Service sshd

然后设置服务的自动启动:

Set-Service -Name sshd -StartupType 'Automatic'

最后确认一下防火墙是否是放开的:

Get-NetFirewallRule -Name *ssh*

如果是放开的,那么结果会提示 OpenSSH-Server-In-TCP这个状态是 enabled。

好了,完成如上操作之后我们就可以使用 SSH 来连接我们的 Windows 服务器了。

连接

连接非常简单了,用户名密码就是 Windows 的用户名和密码,使用 IP 地址链接即可。

比如我的 Windows 开发机的局域网 IP 为:10.172.134.88,那么就可以使用如下命令完成链接:

ssh user@10.172.134.88

然后输入密码,就连接成功了,和 Linux 的是一样的。

另外我自己现在 Mac 常用的 SSH 客户端工具有 Termius,可以多终端同步使用,非常方便,这里我只需要添加我的 Windows 机器就好了,如图所示:

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1Termius 连接界面

OK,以后就可以非常轻松地用 SSH 连接我的 Windows 服务器了,爽歪歪,上面的需求也成功解决。

以上便是使用 SSH 来连接 Windows 服务器的方法,如果大家有需求可以试试。

转载声明:本文转载自公众号【进击的Coder】。
原文链接:https://mp.weixin.qq.com/s/zFX73tmj0fJ98ErZCApPMw


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。