由于奇怪的需求需要部署一台windows服务器,记录一下部署的过程

1安装Windows OpenSSH

首先通过powershell安装OpenSSH的服务端

在开始图标

上点击右键,选择Windows PowerShell(管理员)(A)

在powershell中输入:

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

在powershell中输入:

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

若返回为:

Name  : OpenSSH.Client~~~~0.0.1.0
State : InstalledName  : OpenSSH.Server~~~~0.0.1.0
State : Installed

则表示安装成功,若返回为:

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

表示安装失败,再来一遍吧,注意全程需要管理员权限。

2启动SSH服务器

依然是以管理员身份打开PowerShell,然后运行以下命令来启动 sshd service

# 启动sshd服务
Start-Service sshd# 将sshd服务设置为自动启动,若不设置需要在每次重启后重新开启sshd
Set-Service -Name sshd -StartupType 'Automatic'# 确认防火墙规则,一般在安装时会配置好
Get-NetFirewallRule -Name *ssh*# 若安装时未添加防火墙规则"OpenSSH-Server-In-TCP",则通过以下命令添加
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

3开启密钥登录

这一步是重中之重,加强安全,减少麻烦!!!

生成密钥的方法都是一样的,可以自行搜索,与linux不同的地方在于权限管理和默认authorized_keys存放位置。

公钥 (~\.ssh\id_rsa.pub) 的内容需放置在服务器上的一个名为authorized_keys的文本文件中,该文件位于 C:\Users\username\.ssh\。 OpenSSH 客户端包括了 scp 来帮助实现此目的,这是一个安全的文件传输实用工具。

将本地的公钥部署到服务器上

# 确保服务器上存在.ssh 文件夹,若不存在则使用下面命令创建
ssh username@ip mkdir C:\Users\username\.ssh\#通过scp将本地的公钥上传到服务器上并重命名为authorized_keys,注意此方法会覆盖原有authorized_keys
scp C:\Users\username\.ssh\id_rsa.pub user1@ip:C:\Users\username\.ssh\authorized_keys

通过上述方法会覆盖原有authorized_keys文件,若要添加多个公钥,则通过记事本(更推荐使用vscode等文本编辑器)打开authorized_keys,把另起一行并把新公钥粘贴到authorized_keys文件中。

以下是windows中特有的操作

更改authorized_keys文件权限,不更改则无法通过密钥登录

# 远程通过ACL更改文件权限
ssh --% user1@ip icacls.exe "C:\Users\username\.ssh\authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"

在服务器端则可以通过以下命令修改,注意需要管理员权限。

#在服务器端修改authorized_keys文件权限
icacls.exe "C:\Users\username\.ssh\authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"

在Windows OpenSSH中,默认的授权密钥存放位置为ProgramData\ssh\administrators_authorized_keys,此位置对应为管理用户权限。因此需要修改默认授权文件位置。通过文本编辑器(推荐vscode)打开ProgramData\ssh\sshd_config,修改以下条目

#允许公钥授权访问,确保条目不被注释
PubkeyAuthentication yes#授权文件存放位置,确保条目不被注释
AuthorizedKeysFile  .ssh/authorized_keys#可选,关闭密码登录,提高安全性
PasswordAuthentication no#注释掉默认授权文件位置,确保以下条目被注释
#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

注意修改sshd_config需要管理员权限,修改完成后保存并推出。

在PowerShell(管理员)中重启sshd服务

#重启sshd,需要管理员权限
Restart-Service sshd

至此可以尽情享受windows服务器带来的各种不便了!enjoy!!!

最后附赠如何使用PowerShell卸载Windows OpenSSH

# 卸载 OpenSSH 客户端
Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0# 卸载 OpenSSH 服务端
Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

ssh远程连接windows相关推荐

  1. 二、Linux SSH远程连接Windows

    1.关闭防火墙 2.允许远程访问 3.安装SSH服务器并启动 4.打开Linux查看防火墙状态,未关闭则用system stop firwall暂时关闭防火墙 5.测试网络连通性,不通则检查网卡,保证 ...

  2. SSH 远程连接原理及故障排错详解

    1.SSH 远程连接介绍 最常用的 Linux 提供远程连接服务的工具就是 SSH 软件,SSH 分为 SSH 客户端和 SSH 服务端两部分.其中,SSH服务端包含的软件程序主要有 openssl ...

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

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

  4. python如何连接自己电脑服务器_Python远程连接windows服务器并上传数据

    [芝麻IP代理]大数据时代下,我们对于Python的应用真的是淋漓尽致,第一次玩服务器,电脑端远程连接能连上,可SSH却始终不行,后来才发现,这根本不是一种东西,SSH得在服务器上搭建SSH seve ...

  5. 使用 Powershell 远程连接 windows server

    使用 Powershell 远程连接 windows server Intro 最近我们的开发环境增加了一个 windows 服务器,没有界面的,不能直接远程桌面连上去管理,需要使用 Powershe ...

  6. 如何使用 SSH 控制连接 Windows 服务器

    服务器远程连接/ssh方式连接教程(windows云主机远程登录) 如何使用 SSH 控制连接 Windows 服务器

  7. ssh远程连接服务器

    文章目录 第三章 远程连接服务器 1.1 远程连接服务器简介 1.2 连接加密技术简介 1.3 ssh远程连接服务简介 1.4 sftp用法介绍 1.5 实验 作业: 第一题:两台机器:第一台机器作为 ...

  8. SSH远程连接服务(五)

    文章目录 1. 端口号 2. ssh与telnet区别 3. telnet服务 4. ssh相关命令 4.1 ssh命令 4.2 scp远程拷贝命令 4.3 rz和sftp 5. 在Linux中ssh ...

  9. 介绍3种ssh远程连接的方式

    摘要:SSH(安全外壳协议 Secure Shell Protocol,简称SSH)是一种加密的网络传输协议,用于在网络中实现客户端和服务端的连接,典型的如我们在本地电脑通过 SSH连接远程服务器. ...

  10. PUTTY-0.75 下载安装及SSH远程连接方法

    目录 一.下载教程 1.进入putty官网 2.点击Download it here 3.选择安装模式 二.安装教程 1.打开安装包 2.产品功能设置 三.SSH远程连接方法 1.Linux Serv ...

最新文章

  1. 《LeetCode力扣练习》第94题 二叉树的中序遍历 Java
  2. Intent 匹配规则
  3. 服务器会自动创建cookie,网站的cookie机制是什么
  4. 前端学习(3151):react-hello-react之DoM的diff算法
  5. REVERSE-COMPETITION-HGAME2022-Week2
  6. html列表滑动字母索引,js实现做通讯录的索引滑动显示效果和滑动显示锚点效果...
  7. SpringBoot2 整合 CXF 服务端和客户端
  8. Java并发同步器AQS(AbstractQueuedSynchronizer)学习笔记(2)
  9. 使用sun misc Unsafe及反射对内存进行内省 introspection
  10. JS获取元素的第一个子节点
  11. CentOS 7使用通过二进制包安装MySQL 5.7.18
  12. 【数学建模】【lingo】lingo的基本操作
  13. 在哪儿比较好下载建筑学西方近现代的外文文献?
  14. 动作识别-Regularization on Spatio-Temporally Smoothed Feature for Action Recognition-CVPR2020
  15. 服务器如何设置内网IP地址
  16. PAT甲级准备方法(附2021年PAT甲级秋季考试题解)
  17. ping服务器时显示的ttl是什么意思,运行PING本机IP的时候显示TTL=64是什么意思啊?这个数值? 爱问知识人...
  18. Windows xp IIS 信息服务
  19. M - Make Cents?
  20. Python concurrent.future 使用教程及源码初剖

热门文章

  1. 第三章: 微信小程序底部导航栏的实现(详细)
  2. python esp8266 ssd1306_micropython esp8266+ssd1306(OLED) 显示中文(示例)
  3. 安全龙网络安全攻防实验1.2 全新功能正式上线
  4. tp5调用阿里云短信接口
  5. Java医院网上预约挂号系统源码
  6. 金蝶K3 各种单据及各种控制功能表的关系
  7. MySQL批量插入(使用mybatis实现mysql数据库的批量插入操作)
  8. soundpool android,Android SoundPool:再次播放停止的声音
  9. 利用JS代码完成动态生成表格案例及解析
  10. 三菱PLC源型漏型输入输出