经过之前的各种远程管理方法,Windows Server可以被很好的管理,也能符合大多数Windows管理员的使用习惯。不过既然是命令行版本的Windows能不能和Linux一样管理呢?Windows上启用SSH服务。
为了符合Linux的管理方式,那么就需要在Windows上启用SSH服务。微软官方也给出了如何在Windows Server上使用OpenSSH管理的方法。
OpenSSH in Windows
https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_overview
官方文章中有很多实用的步骤,但是在操作过程中我也遇到了一些问题。最终自己摸索着解决了。
首先,我们要安装OpenSSH服务器端。可以使用Powershell命令来检查公网仓库中的软件包。
Get-WindowsCapability -Online | ? Name -Like ‘*SSH‘
SSH 前后都可以有星号
如果看不到图,请点我。
可以看到有服务器和客户端2个包,其中客户端的已经装好了。知道了包的名字,我们就可以安装了。
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
很快,就能看到OpenSSH Server被装好了。
接下去,就是需要启用服务并在防火墙中放行TCP 22。这里,我们使用Admin Center的方式启用服务并启用防火墙规则。其中防火墙规则是自动创建的,只需要启用它就饿可以了。由于我们最终需要通过密钥的方式登录系统,所以需要将ssh-agent服务也启动。并将他们的启动类型都改成自动。
到这里,就可以直接使用SSH连接到服务器了,可以使用密码登录了。但是为了方便统一登录管理,最终目标是使用密钥的方式登录。
sshd的配置文件在C:\ProgramData\ssh目录下。编辑sshd_config,去掉PubkeyAuthentication yes前面的注释。然后在C:\Users\Administrator下建立文件夹.ssh,并且将公钥文件复制过去,名字改成authorized_keys。如果是Linux服务器,这样就可以用本地的私钥登录了。但是这个Windows服务器就是不行,还是会提示输入密码。试过大写A Administrator 小写a administrator,都不可以。试着按官方文章中的方法修复authorized_keys文件的权限也没用。
接下来,试着从Linux主机复制公钥到服务器上,结果发现用户配置文件.ssh目录下并没有。
经过反复测试发现文件都被上传在了C:\Users\Administrator目录下。
后来发现是由于路径的问题,Linux使用/而Windows使用\。重新用/作为路径之后就可以了。
scp id_rsa.pub [email protected]:c:/users/administrator/.ssh/authorized_keys
之后就可以直接使用密钥登录系统了。
关于文件的权限,也并不需要按官方文章中提到的修复权限。
我服务器上文件的权限如图所示。
原文地址:https://blog.51cto.com/qiyuwei/2439659