【Windows打开OpenSSH服务端支持】

2023-10-27

概要

项目需要装了一个Windows Server 2022,由于不能亲自到场调试,我就打开了OpenSSH服务支持,给有需要的小伙伴参考下。

整体架构流程

教程只适用于Windows10 1809+,Windows11和Windows Server 2019+,请将系统升级到最新版。

整体思路就是添加OpenSSH服务端->设置自启动->改配置和端口

技术细节

上面列的版本都是直接支持的,其他版本请升级到那些版本再进行下一步。

1.安装OpenSSH服务端

这一步需要网咯
打开 设置->应用->可选功能
在这里插入图片描述

2.设置自启动

Win+R并输入services.msc,下拉找到OpenSSH SSH Server
在这里插入图片描述
双击点进去,将手动改为自动,不用选延迟。
一定要应用,这样才能保存
在这里插入图片描述

3.启动服务

这一步需要管理员权限
用管理员权限打开一个powershell,输入下面指令

net start sshd

没报错就是成功了。
关闭使用stop即可。

4.资源监视器

打开资源监视器,找到监听端口,选择升序排列并找到22
在这里插入图片描述
这个时候你就可以正常使用了。

修改配置

很多配置再WIndows上是有效的,有些在Linux上是有效的,Windows上无效。

默认配置保存在C:\Windows\System32\OpenSSH\sshd_config_default

这个配置是不能写入的,你只需要另存为sshd_config然后覆盖到指定位置就行了。

具体位置就在C:\ProgramData\ssh\sshd_config,这个文件夹是隐藏文件,你需要设置下才能看到它。

请看默认配置:

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey __PROGRAMDATA__/ssh/ssh_host_rsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_dsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ed25519_key

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile	.ssh/authorized_keys

#AuthorizedPrincipalsFile none

# For this to work you will also need host keys in %programData%/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no

# GSSAPI options
#GSSAPIAuthentication no

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#PermitTTY yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#PermitUserEnvironment no
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none

# no default banner path
#Banner none

# override default of no subsystems
Subsystem	sftp	sftp-server.exe

# Example of overriding settings on a per-user basis
#Match User anoncvs
#	AllowTcpForwarding no
#	PermitTTY no
#	ForceCommand cvs server

Match Group administrators
       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

说一下能改的几个配置:
Port:就是绑定端口,不改的话就是22
ListenAddress:可以指定本地回环或其他网卡地址或全地址
PubkeyAuthentication:支持公钥登录
PasswordAuthentication:支持密码登录,默认支持

不支持的配置:

AcceptEnv
AllowStreamLocalForwarding
AuthorizedKeysCommand
AuthorizedKeysCommandUser
AuthorizedPrincipalsCommand
AuthorizedPrincipalsCommandUser
压缩
ExposeAuthInfo
GSSAPIAuthentication
GSSAPICleanupCredentials
GSSAPIStrictAcceptorCheck
HostbasedAcceptedKeyTypes
HostbasedAuthentication
HostbasedUsesNameFromPacketOnly
IgnoreRhosts
IgnoreUserKnownHosts
KbdInteractiveAuthentication
KerberosAuthentication
KerberosGetAFSToken
KerberosOrLocalPasswd
KerberosTicketCleanup
PermitTunnel
PermitUserEnvironment
PermitUserRC
PidFile
PrintLastLog
RDomain
StreamLocalBindMask
StreamLocalBindUnlink
StrictModes
X11DisplayOffset
X11Forwarding
X11UseLocalhost
XAuthLocation

防火墙

可以先关掉防火墙测试,完了后再打开防火墙。如果你打开了防火墙要配置规则的,否则可能导致无法访问的情况。

小结

总体来说,除非特别有必要,否则尽量不要用这个功能,优先选私钥登录。主要还是安全优先。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Windows打开OpenSSH服务端支持】 的相关文章

  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • PHP 从命令行启动 gui 程序,但 apache 不启动

    首先 我阅读了有类似问题的人的一些帖子 但所有答案都没有超出导出 DISPLAY 0 0 和 xauth cookies 这是我的问题 提前感谢您的宝贵时间 我开发了一个小库 它使用 OpenGL 和 GLSL 渲染货架 过去几天我将它包装
  • Windows 上的 ffmpeg-android ndk

    我正在尝试编译 bash 文件 带有 android ndk 的 ffmpeg 我收到如下错误 arm linux androideabi gcc 无法创建可执行文件 C 编译器测试失败 Makefile 2 config mak 没有这样
  • Linux 内核标识符中前导和尾随下划线的含义是什么?

    我不断遇到一些小约定 比如 KERNEL Are the 在这种情况下 是内核开发人员使用的命名约定 还是以这种方式命名宏的语法特定原因 整个代码中有很多这样的例子 例如 某些函数和变量以 甚至 这有什么具体原因吗 它似乎被广泛使用 我只需
  • os.Mkdir 和 os.MkdirAll 权限

    我正在尝试在程序开始时创建一个日志文件 我需要检查是否 log如果不创建目录 则目录存在 然后继续创建日志文件 好吧 我尝试使用os Mkdir 也os MkdirAll 但无论我在第二个参数中输入什么值 我都会得到一个没有权限的锁定文件夹
  • Windows 上的 Apache Pig 在运行“pig -x local”时出现“hadoop-config.cmd”未被识别为内部或外部命令”错误

    如果您由于以下错误而无法在 Windows 上运行 Apache Pig hadoop 2 4 0 bin hadoop config cmd is not recognized as an internal or external com
  • 代码 GetAsyncKeyState(VK_SHIFT) & 0x8000 中的这些数字是什么?它们是必不可少的吗?

    我试图在按下按键的简单动作中找到这些数字及其含义的任何逻辑解释 GetAsyncKeyState VK SHIFT 0x8000 可以使用哪些其他值来代替0x8000它们与按键有什么关系 GetAsyncKeyState 根据文档返回 如果
  • 在 Windows 上查找父进程 ID

    Problem 给定远程 Windows 主机上的进程 ID 和命令行访问权限 如何找到其父进程的 PID Solution 鉴于 Marc B 的回答 我们可以使用 WMIC 命令示例here https learn microsoft
  • 从其可执行文件的路径获取服务名称

    我有一个可执行文件的路径 它是一个正在运行的服务应用程序 例如 C Program Files x86 Someapp somesvc exe 我想停止并启动它 为此我想我需要获取服务的名称 如下所示 this https stackove
  • 用于推送通知的设备令牌

    我正在实施推送通知服务 我需要创建一个数据库来存储 4 个移动平台的所有设备令牌 我想根据他们的平台 iOS Android BlackBerry WP7 来组织它们 但是有什么方法可以区分平台 这样如果我只想向 Android 用户发送消
  • ubuntu:升级软件(cmake)-版本消歧(本地编译)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我的机器上安装了 cmake 2 8 0 来自 ubuntu 软件包 二进制文件放置在 usr bin cmake 中 我需要将 cmake 版本至少
  • C语言中如何通过内存地址映射函数名和行号?

    如何用 GCC 中的内存地址映射回函数名称和行号 即假设一个 C 语言原型 void func Get the address of caller maybe this could be avoided MemoryAddress get
  • Qt GUI 应用程序中的控制台输出?

    我有一个在 Windows 上运行的 Qt GUI 应用程序 它允许传递命令行选项 在某些情况下我想向控制台输出一条消息 然后退出 例如 int main int argc char argv QApplication a argc arg
  • 批处理脚本 - IF EXIST 复制到 %localappdata% 错误

    我似乎被批处理脚本困住了 需要一些帮助 基本上我需要检查文件是否存在于文件夹中 localappdata 如果确实如此 则覆盖该文件 如果没有放置在不同的位置 那么目前它的内容如下 IF EXIST localappdata foldern
  • 查找哪个程序运行另一个程序

    我有一个 NAS 运行在 Redhat Linux 的有限版本上 我按照指示破解了它 这样我就可以访问 shell 这很有帮助 我还做了一些修改 其他人也做过修改 除了一个问题之外 它们似乎都工作得很好 不知何故 每隔 22 天 系统就会关
  • 在脚本内使用不带密码的 sudo

    由于某种原因 我需要作为用户在没有 sudo 的情况下运行脚本 script sh 该脚本需要 root 权限才能工作 我认为将 sudo 放入 script sh 中是唯一的解决方案 让我们举个例子 script sh bin sh su
  • Nexus 7 (2013) 和 Win 7 64 - 尽管检查了许多论坛和在线资源,仍无法安装 USB 驱动程序

    我正在尝试设置 Nexus 7 2013 进行调试 但我在安装 USB 驱动程序的步骤中陷入困境 到目前为止 这是我尝试过的 采取的步骤 在 Nexus 7 2013 上打开调试模式 连接设备至 PC 下载 Google USB 驱动程序于
  • 如何一步步遍历目录树?

    我发现了很多关于遍历目录树的示例 但我需要一些不同的东西 我需要一个带有某种方法的类 每次调用都会从目录返回一个文件 并逐渐遍历目录树 请问我该怎么做 我正在使用函数 FindFirstFile FindNextFile 和 FindClo
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是

随机推荐

  • 嵌入式软件的“验证”与“确认”傻傻分不清楚?别担心,7分钟让你读懂!

    测试自动化如何加速软件验证和软件确认 确保嵌入式软件的正确操作 质量 安全性和保障是嵌入式系统软件活动的重要组成部分 在很大程度上 团队通过软件测试以及整个开发过程中的分析 可追溯性 文档等来完成此任务 关键安全软件具有严格的验证和确认方法
  • select标签重复选中同一option时无法触发change事件的解决方法,option点击事件无效的替代方案,兼容老版IE

    笔者最近遇到这么一个问题 点击下拉框中某一个选项时弹出二级界面 但重复点击同一个下拉框选项就无法触发了 方法一 请教一位同事得到的方法 在谷歌等浏览器上是好使的 也比较简单 效果如图 思路就是 既然重复点一个选项无效 咱们就另加一个隐藏的选
  • 赋值表达式出现报错:expression must be a modifiable lvalue

    问题 我在一个类的cpp文件中 修改一个成员函数 在函数中进行对私有成员变量total torque thrust 的赋值操作 但是却报了如下错误 no operator matches these operands 或者 expressi
  • HTML附加功能实现(标签栏图表修改,发邮件,使用矢量图库)

    网页标签栏图标修改 在html文件的标签中使用标签即可设置标签栏角标 gt 超链接发送邮件 a href 发送邮件 a 使用icon矢量图 在阿里巴巴矢量图库 http www iconfont cn 搜索需要的图标 将选中的图标添加到购物
  • 通过DOCKER OVERLAY2 目录名查找容器名和容器ID

    有时候经常会有个别容器占用磁盘空间特别大 这个时候就需要通过docker overlay2 目录名查找对应容器名 1 首先进入到 var lib docker overlay2 目录下 查看谁占用的较多 du s sort rn more
  • 【ISP】色温

    1 黑体 任何物体都具有不断辐射 吸收 反射电磁波的性质 辐射出去的电磁波在各个频率上是功率不同的 也就是具有一定的谱分布 这种谱分布与物体本身的特性及其温度有关 因而被称之为热辐射 为了研究不依赖于物质具体物性的热辐射规律 物理学家们定义
  • python实现地址经纬度转换爬虫

    给大家分享一下地址转换为经纬度的爬虫 打开网址https jingweidu 51240 com 随便在输入框输入一个地址 接下来打开开发者模式 点network刷新页面检查所要的内容 第一条链接就是我们要的地址 复制下来就行 接下来就上代
  • R语言练习题答案(3)

    关注公众号凡花花的小窝 含有更多更全面的计算机专业编程考研相关知识的文章还有资料 代码 3 19 使用subset函数选取数据 df1 lt data frame name c aa bb cc age c 20 29 30 sex c f
  • QT读取文件夹下的特定文件

    话不多说 直接上代码 个人理解的注释 参考就行 1 选择目录 获取目录下文件的绝对路径 QString filepath QFileDialog getExistingDirectory this QStringLiteral 选择目录 F
  • 天猫推荐算法团队的那些事儿

    天猫技术部算法组是一个相对比较新的团队 刚刚成立一年 目前有10个算法工程师和5个开发工程师 这个团队所负责的内容是天猫上的数十个推荐产品 这些推荐产品帮助消费者找到他们喜欢的东西 将用户跟商品匹配的路径缩短 当然对天猫平台来说 推荐算法的
  • linux使用之__setup关键字

    在Linux内核代码中经常会看到 setup 如下所示 setup nfsroot nfs root setup 这是一个宏 它的定义在include linux init h define setup str fn setup param
  • js 取色器和 颜色拾取工具

    取色器 input在html5中有新增了type color的属性有一个直接值的 取色器 加 拾色器 点击滴管进入取色 监听input事件追踪值的变化 input的value值会返回十六进制 所以写了一个内置conversion函数转成rg
  • 如何写出高效的软件测试用例?微信朋友圈动态发送为例

    编写一份好的测试用例需要 充分的需求分析能力 理论及经验加持 但这并不意味着 没测试经验 分析能力弱就不能写好用例 还是有方法可循的 作为混迹测试职场 10 年的老人 给大家分享一些用例编写的心得 接下来我会从以下几个方面展开来讲 测试用例
  • QT 创建并调用 动态链接库Dll

    QT操作动态链接库 自定义目录 QT操作动态链接库 1 新建动态链接库 2 调用动态链接库 为了提高代码的复用性 实现模块化开发 需要对一些常用函数进行封装 可以通过调用共享库的方式实现 本教程以Qt Creater编译器为例 创建并调用动
  • error: undefined reference to `user::on_pushButton_clicked()‘

    qt中报这个错误是因为声明了函数但未进行实现 在 h文件中将其删除即可
  • 如何在同一台计算机上安装多个Java版本

    一段时间以前 我写了一篇文章 用示例解释Java Lambda表达式 但是我很容易浏览Java 8 因为我在项目中使用了Java 8 并且允许我安装和使用它 但是在我当前的项目中 我们仍在使用Java 8 现在我想升级自己并学习Java 1
  • CC254X 蓝牙博文收集

    BLE CC2541之添加特征值 BLE CC2541之发现多个特征值句柄 BLE CC2541之配对与绑定 CC2640R2F之配对绑定与解除绑定篇 IoT产品之蓝牙设计 BLE CC2541 BLE CC2640
  • React组件之间如何通信?

    React组件通信就是值组件通过某种方式来传递信息以达到某个目的 方式 父组件向子组件传递信息 由于react数据流动是单向的 父组件在调用子组件时 只需要在子组件标签内传递参数 子组件通过props属性接收 function EmailI
  • Redis Java 客户端工具 - Lettuce框架介绍

    Redis Java 客户端 Lettuce 今天学习下Redis Java客户端开源项目 Lettuce Lettuce支持同步 异步通信的方式 API调用 也支持响应式编程API 包括发布 订阅消息 高可用性服务部署架构 开始之旅 Ma
  • 【Windows打开OpenSSH服务端支持】

    文章目录 概要 整体架构流程 技术细节 1 安装OpenSSH服务端 2 设置自启动 3 启动服务 4 资源监视器 修改配置 防火墙 小结 概要 项目需要装了一个Windows Server 2022 由于不能亲自到场调试 我就打开了Ope