经过之前的各种远程管理方法,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*'

如果看不到图,请点我

 

可以看到有服务器和客户端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 administrator@ip:c:/users/administrator/.ssh/authorized_keys

之后就可以直接使用密钥登录系统了。

关于文件的权限,也并不需要按官方文章中提到的修复权限。

我服务器上文件的权限如图所示。

Windows Server体验之SSH远程连接的更多相关文章

  1. windows server服务器上mysql远程连接失败的坑

    windows server服务器上mysql远程连接失败的坑 背景:趁这阿里云活动,和朋友合伙买了个服务器,最坑的是没想到他买的是windows Server的,反正便宜,将就着用吧,自己装好了wa ...

  2. Win记录-配置Windows Server R 2008多用户远程连接(仅做参考)

    1.计算机管理下用户组下新建用户 2.系统属性下远程控制加入用户,设置允许运行任何远程桌面 3.运行->gpedit.msc->计算机配置->管理模板->windows 组件- ...

  3. windows Server 2016安装Sqlserver远程连接的坑

    如果要连接远程服务器 首先打开防火墙端口1433  新建入站规则 然后 如果没启用 就启用  然后重启服务就行 如果还是不行 进去属性  修改三处 然后重启服务

  4. windows server 2008配置多用户远程连接

    打开开始菜单->管理工具->远程桌面服务->远程桌面会话主机配置 右键限制每个用户只能进行一个会话->常规->勾掉限制每个与用户只能进行一个会话 右键远程桌面授权模式-& ...

  5. 使用工具SecureCRT通过ssh远程连接Windows server 2019

    Windows Server 2019 开通SSH Server服务 在需要安裝的ws2019开启powershell,执行安装 openssh server 指令 Add-WindowsCapabi ...

  6. Windowsclient SSH 远程连接Windowsserver(PowerShell Server)

    近期刚搞完SSH框架.又来研究研究SSH远程连接.为什么这么要弄这个呢?由于如今我如今开发主要在自己的笔记本(windows)上,然后写的后端都要部署到实验室的台式机(windows)上,这样一来,我 ...

  7. Windows和linux虚拟机之间联网实现SSH远程连接以及VMware的3种网络模式[NAT、桥接和Host-only]

    Windows和linux虚拟机之间联网实现SSH远程连接以及VMware的3种网络模式[NAT.桥接和Host-only] 作者:天齐 一.Windows和linux虚拟机之间联网实现SSH远程连接 ...

  8. 全新 Mac 安装指南(编程篇)(环境变量、Shell 终端、SSH 远程连接)

    注:本文专门用于指导对计算机编程与设计(尤其是互联网产品开发与设计)感兴趣的 Mac 新用户,如何在 Mac OS X 系统上配置开发与上网环境,另有<全新 Mac 安装指南(通用篇)>作 ...

  9. 远程连接Kali Linux使用PuTTY实现SSH远程连接

    远程连接Kali Linux使用PuTTY实现SSH远程连接 本书主要以在Android设备上安装的Kali Linux操作系统为主,介绍基于Bash Shell渗透测试.由于在默认情况下,在Andr ...

随机推荐

  1. Neural Networks

    神经网络能够使用torch.nn包构建神经网络. 现在你已经对autogard有了初步的了解,nn基于autograd来定义模型并进行微分.一个nn.Module包含层,和一个forward(inpu ...

  2. 未找到与名为“xxx”的控制器匹配的类型。

    自己封装了一个BaseApiControllerr把他独立成一个项目出来在引用不行,而用默认自带的ApiControllerr可以. <Error> <Message> 未找到 ...

  3. 【学习笔记】带你从0开始学习 01Trie

    01Trie Section 1:普通 Trie Section 1.1 什么是 Trie Trie 树,即字典树,是一种树形结构.典型应用是用于统计和排序大量的字符串前缀来减少查询时间,最大限度地减 ...

  4. 虚言妙诀终虚见,面试躬行是致知,Python技术面试策略与技巧实战记录

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_183 2021年,对于正在找工作的朋友来说,笼罩在新冠肺炎疫情之下,今年的就业季显得更加具有挑战性,更有意思的是,每当这个时候,各 ...

  5. Java学习 (七)基础篇 变量

    变量 变量顾名思义,就是可以变化的量 Java是一种强类型语言,每个变量都必须声明其类型 Java变量是程序中最基本的存储单位,其要素包括变量名.变量类型和作用域 type varName [=val ...

  6. AOP实现切入

    6.AOP实现切入 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程 通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术 AOP是OOP的延续,也 ...

  7. 万答#12,MGR整个集群挂掉后,如何才能自动选主,不用手动干预

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 本文转载自微信公众号"老叶茶馆" MGR整个集群挂掉后,如能 ...

  8. React报错之useNavigate() may be used only in context of Router

    正文从这开始~ 总览 当我们尝试在react router的Router上下文外部使用useNavigate 钩子时,会产生"useNavigate() may be used only i ...

  9. 源码解析springbatch的job是如何运行的?

    202208-源码解析springbatch的job是如何运行的? 注,本文中的demo代码节选于图书<Spring Batch批处理框架>的配套源代码,并做并适配springboot升级 ...

  10. 理解vue中v-for循环中得key原理及一些错误

    作用:给节点做一个标识,相当于人类的身份证号,虚拟DOM中的标识 下列是key值的一些使用场景和带来的问题:   js:    const vm = new Vue({             el: ...