几步命令轻松搭建Windows SSH服务端

这里说的SSH,全名叫做Security Shell,相信经常用Linux的同学不会陌生。SSH最常见的作用就是用来远程登录其他系统的命令行界面,当然主要还是给Linux用户使用的。但是其实现在Windows 10已经自带了OpenSSH功能,这样一来,我们就可以在Windows下安装和使用SSH的相关功能了。下面来看看怎么来安装吧。

查看系统版本

首先确定你的系统是否是Windows 10 1809或者更新的系统,如果不是的话,先更新系统,把系统更新到最新状态。

查看系统版本也十分简单,打开开始菜单,选择设置,然后选择系统->关于,即可在最下面找到系统版本号。


系统版本号

又或者,你喜欢命令行的话,也可以从powershell运行下面的命令来查看版本号。

(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId

安装OpenSSH

确定了版本号,下面就来安装OpenSSH。安装方式也很简单,还是从开始菜单进入Windows设置,这次选择应用->应用和功能->可选应用->添加功能进入。


可选应用

然后找到OpenSSH服务端和客户端,安装这两项。


安装OpenSSH

如果你喜欢简洁的命令行的话,同样简单,先运行下面的命令查看一下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

然后安装它们即可。

# 安装客户端
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# 安装服务端
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

# 它们的输出应该类似下面这样

Path          :
Online        : True
RestartNeeded : False

结果和图形界面安装的完全相同。不管采用哪种方式,你现在都拥有了OpenSSH功能了。

启动SSH服务端

下面打开管理员权限的powershell窗口,这次输入下面的命令来查看刚刚安装的OpenSSH服务,下面的sshd就是OpenSSH的服务端了。

Get-Service *|where Name -Like '*ssh*'

Status   Name               DisplayName
------   ----               -----------
Stopped  ssh-agent          OpenSSH Authentication Agent
Stopped  sshd               OpenSSH SSH Server

简单启动该服务即可。

Start-Service sshd

下面就可以用OpenSSH的客户端来连接了,直接在powershell窗口(无需管理员)中输入以下命令即可。这里需要提醒一下,如果你用的是微软账号(也就是微软邮箱)创建和登录用户的话,用户名会被截断为邮箱@符号前面的一部分,具体来说就是你用户文件夹的名字,这也是微软做的比较坑人的一点。

ssh 你的用户名@localhost

然后你应该就会看到命令提示符发生了变化,提示你现在已经进入到了SSH环境中。虽然这个环境还是你的本机。如果你在这个环境里运行命令,应该还会发现,这是一个cmd窗口,而不是powershell终端窗口。

SSH环境

使用SFTP替代FTP

好吧,到这里你可能会产生一个问题,虽然这样我们成功得到了在Windows上运行的OpenSSH服务端,但是它有什么用呢?这个问题问的很好,坦白来说,其实它确实没什么用,但是如果对比来说的话,却是FTP的完美替代产品。

FTP大家应该经常用的吧。我原来就非常喜欢在Windows上开一个IIS服务器,用它来创建FTP服务器来传输文件。相信很多人都会这样用的。但是FTP作为一个老协议,最大的问题就是没有加密,所有流量都是公开传输的,很容易被截获并读取。这时候最好用SFTP来替代,虽然它名字很接近,但是其实和FTP没有任何关系,因为SFTP是基于刚刚介绍的SSH协议的。

那么SFTP怎么用呢?其实很简单,我们刚刚搭建好的OpenSSH服务端自带SFTP支持,所以现在就已经搭建好了SFTP了。用法很简单,打开FileZilla或者WinSCP这样的FTP客户端软件,打开协议的下拉列表,就可以看到SFTP这个选项。只需要用鼠标轻轻一点这个选项,我们就获得了安全、加密、高效的传输协议!

SFTP选项

另外,如果你是Linux用户,也不要再Linux上面安装vsftpd这类FTP服务端了,同样不安全,还多此一举。直接用你SSH登录Linux的用户名和密码,随便找一个FTP客户端软件(基本都支持SFTP协议),登录即可。

你可能感兴趣的:(几步命令轻松搭建Windows SSH服务端)