合 Windows系统开启SSH服务端配置
简介
在Windows上开启OpenSSH服务端后,就可以通过远程的ssh来登陆Windows的cmd界面了,然后可以做很多操作了。
OpenSSH 是安全 Shell (SSH) 工具的开放源代码版本,Linux 及其他非 Windows 系统的管理员使用此类工具跨平台管理远程系统。 OpenSSH 在 2018 年秋季已添加至 Windows,并包含在 Windows 10 1809 和 Windows Server 2019 中。
SSH 基于客户端-服务器体系结构,用户在其中工作的系统是客户端,所管理的远程系统是服务器。 OpenSSH 包含一系列组件和工具,用于提供一种安全且简单的远程系统管理方法,其中包括:
- sshd.exe,它是远程所管理的系统上必须运行的 SSH 服务器组件
- ssh.exe,它是在用户的本地系统上运行的 SSH 客户端组件
- ssh-keygen.exe,为 SSH 生成、管理和转换身份验证密钥
- ssh-agent.exe,存储用于公钥身份验证的私钥
- ssh-add.exe,将私钥添加到服务器允许的列表中
- ssh-keyscan.exe,帮助从许多主机收集公用 SSH 主机密钥
- sftp.exe,这是提供安全文件传输协议的服务,通过 SSH 运行
- scp.exe 是在 SSH 上运行的文件复制实用工具
Windows10和Windows11安装自带的OpenSSH服务
安装OpenSSH服务
打开【设置】-【应用】- 选择【管理可选功能】- 点击【添加功能】,下载完成后会自动安装,安装成功会出现在列表中
执行“net start sshd
”命令,启动SSH服务,若要配置开机启动,则按下【win】+R键,输入【services.msc】,搜索到【OpenSSH SSH Server】服务,右键-属性,启动类型选择:【自动】,这样就实现了开机自启,路径:C:\WINDOWS\System32\OpenSSH\sshd.exe
Windows 11添加OpenSSH服务:
登陆
1 | ssh windows的用户名@IP地址 |
注意:这里的用户名可以开启一个cmd窗口来查看用户名,例如如下的内容,用户名就是
lhrxxt
:
1234 Microsoft Windows [版本 10.0.17134.765](c) 2018 Microsoft Corporation。保留所有权利。C:\Users\lhrxxt>
ssdh配置文件
在 Windows 中,sshd 默认情况下从 %programdata%\ssh\sshd_config 中读取配置数据,也可以通过使用 -f 参数启动 sshd 来指定不同的配置文件。 如果该文件不存在,则在启动该服务时,sshd 将使用默认配置生成一个文件。
报错:系统无法访问此文件
1 2 | lhr@LHRXXT C:\Users\lhr>wsl -l 系统无法访问此文件。 |
参考:https://answers.microsoft.com/zh-hans/windows/forum/all/ssh%E8%BF%9C%E7%A8%8B%E8%BF%9E%E6%8E%A5%E5%90%AF/47276b13-0261-4b13-bf82-f56abcd0d524 我是Windows11系统,未解决。
命令行安装
在 Windows Server 2019 和 Windows 10 1809 中,OpenSSH 客户端和 OpenSSH 服务器是可单独安装的组件。
安装组件也很简单,若要使用 PowerShell 安装 OpenSSH,请首先以管理员身份启动 PowerShell。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | -- 查询 Get-WindowsCapability -Online | ? Name -like 'OpenSSH*' -- 安装 Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 #启动服务 Set-Service -Name sshd -StartupType Automatic Start-Service -Name sshd Get-Service -Name sshd #添加防火墙 Get-NetFirewallRule -Name *ssh* New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 |
查询如下: