借助维基百科的一句话解释,SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。使用频率最高的场合类Unix系统,但是Windows操作系统也能有限度地使用SSH。2015年,微软宣布将在未来的操作系统中提供原生SSH协议支持

在我写这篇文章的时候,Windows 10 / Windows Server 2019 已经原生支持了 SSH 服务。

# 简介

SSH 的经典用途是用于登录至远程的计算机,我们只需要在拥有SSH客户端的命令行像下面这样使用,就可以获得目标主机命令行的控制权。

ssh username@192.168.1.10:22

如果像这样使用,还可以将远程主机某个端口上的服务映射到本地的端口上(例如在本地的3307端口访问远程主机的mysql服务):

ssh username@192.168.1.10:22 -L 3307:127.0.0.1:3306

其中 username 是远程主机的某个账号名;192.168.1.10 是远程主机的地址,也可以是域名;:22是 SSH server 的端口号,也可以不设置,默认就是 22。

# 安装

本文是采用有图形界面的 Windows Server 进行的安装,接下来我们就来安装一波试试看吧。

在 Windows 10/ Windows 2019 往后的版本中,可以在 系统设置 > 应用 > 应用和功能 > 管理可选功能 > 添加功能 中找到 OpenSSH 服务器
可选功能之添加 OpenSSH 服务器

在版本比较旧的系统中,也可以通过 OpenSSH 的官方开源包来进行安装。

# 1.下载安装包

PowerShell/Win32-OpenSSH 下载最新版本的 OpenSSH Server

在写这篇文章时,我所下载的版本是 v7.9.00p1-BetaOpenSSH-Win64.zip

然后把内容全部解压至你喜欢的地方,例如我放在了 C盘根目录的 OpenSSH-Win64 文件夹。

图片标题

# 2.安装 sshd 和 ssh-agent 服务

在解压的目录打开命令行工具,并输入以下命令

powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

服务安装成功

# 3.运行服务

开始 > 运行,输入 service.msc 打开服务面板,找到下图的两项服务:

找到这两项服务

在这两项服务上都右键,选择“属性”,在打开的面板中将启动类型设置为 自动。这样一来,这两项服务就会随着系统的启动而自动启动了。并且点击一下 “启动” 来启动一下这两个服务。

设置启动类型

# 4.检查你的防火墙

因为 OpenSSH Server 默认占用 22 端口,所以要检查一下你的系统是否允许外部连接你的 22 端口。如何检查这里不赘述。

# 5.使用 ssh 指令登录到你的 Windows Server

现在,我们可以在拥有 ssh 客户端的设备上登录至刚刚配置好的 Windows Server。书写本文的时候,大概运用的网络拓扑结构如下:

我的网络拓扑

现在我要从 macOS 上使用 ssh 连接到 Windows Server,在 mac 的命令行中输入

ssh Administrator@192.169.50.240

Administrator 是 Windows Server 上的默认账号,你也可以新建一个另外的账号,因为登录的时候它会要求你输入密码:

要求我输入密码

验证通过后我们就可以在 mac 上使用命令行访问 windows server 的命令行啦:

执行 dir 指令

如果是在 windows 系统上想进行 ssh 连接的话,不妨试一下 putty 或者 winscp 等工具吧?