如何在Windows 10中配置PowerShell SSH远程处理
admin
2023-08-03 05:04:29
0

Windows 11 Pro ISO文件在哪下载最新版?如何下载原装纯净版Win11 ?点击进入   持续更新!

如何在Windows 10中配置PowerShell SSH远程处理

Microsoft在PowerShell 6中引入了Secure Shell(SSH)作为PowerShell Remoting的传输方式。旧版本的PowerShell(Windows PowerShell)仅限于HTTP / HTTPS和Windows远程管理(WinRM)。WinRM / HTTP适用于Active Directory(AD)环境。身份验证和通信得到保护。WinRM / HTTPS用于访问工作组计算机,即未加入AD域的计算机。

但是要使用HTTPS,您需要获取,设置和管理证书。那是一个痛苦。此外,您需要在设备上配置受信任的主机,然后它们才能接受WinRM / HTTPS连接。

为了解决这些问题,Microsoft在PowerShell 6中引入了SSH作为PowerShell Remoting的传输选项。SSH使用密码和公用/专用密钥对进行身份验证,因此证书不是强制性的,就像使用HTTPS时一样。由于SSH仅在PowerShell 6和更高版本中受支持,因此您需要在Windows中安装最新版本的PowerShell。Windows 10默认安装了旧版Windows PowerShell 5.1。

配置PowerShell Remoting以使用SSH的主要步骤有两个。第一步是配置要远程连接的计算机。您将需要执行以下操作:

  1. 安装最新版本的PowerShell。在撰写本文时,它是PowerShell v7。
  2. 安装和配置OpenSSH服务器

完成后,您将需要配置管理PC。即,您要用来管理远程设备的计算机:

 

  1. 安装最新版本的PowerShell。
  2. 安装OpenSSH客户端

配置远程设备

让我们从配置要远程连接的设备开始。

安装最新版本的PowerShell

安装PowerShell的最佳方法是从GitHub此处获取最新的.msi安装程序文件。一旦安装了PowerShell,最新版本的PowerShell和Windows PowerShell 5.1将可以并行工作。Windows PowerShell仅支持某些cmdlet。因此,在本教程中,我们将需要使用Windows PowerShell和刚安装的最新版本的PowerShell。

安装OpenSSH

第一步是在Windows中安装OpenSSH。为此,我们将使用Windows PowerShell和Add-WindowsCapability cmdlet。要打开Windows PowerShell,请在任务栏上的搜索框中键入Windows powershell,在搜索结果中单击Windows PowerShell右侧的箭头(>),然后在右侧的选项列表中单击以管理员身份运行。可能会要求您输入管理员凭据或同意运行PowerShell。

图片#1扩大 

Figure1-6-1159x1024-1Figure1-6-1159x1024-1
在Windows 10中配置PowerShell SSH远程处理(图片来源:Russell Smith)

在PowerShell窗口中,运行以下两个命令以将OpenSSH客户端和服务器组件添加到设备。客户端不是严格需要的,但是它将帮助我们测试SSH服务器是否正常工作。安装OpenSSH服务器组件还会在TCP端口22上为所有网络连接配置文件创建并启用Windows防火墙入站连接规则。

PowerShell

12 Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

 

 

图片#2扩大 

Figure2-5-1280x765-1Figure2-5-1280x765-1
在Windows 10中配置PowerShell SSH远程处理(图片来源:Russell Smith)

现在让我们启动sshd服务并将其设置为自动启动:

PowerShell

12 Start-Service sshdSet-Service -Name sshd -StartupType \’Automatic\’

要测试SSH是否正常运行,可以使用SSH命令从PowerShell窗口本地连接到它。运行以下命令,用本地设备上的用户名替换“ russell”。

PowerShell

1 ssh russell@localhost

键入“是”表示您要连接,然后输入您的帐户密码。要退出SSH会话,请键入exit并按ENTER

配置SSH以进行PowerShell远程处理

现在SSH在设备上运行了,我们可以将其配置为与PowerShell Remoting一起使用。我们需要编辑sshd_config文件,该文件位于C:\\ ProgramData \\ ssh中。由于sshd_config位于受保护的目录中,因此我们需要以管理员身份运行记事本才能对其进行编辑。

  • 在任务栏的搜索框中键入记事本,确保在搜索结果中选择了记事本。在右侧的选项中,单击向下箭头以展开可用的选项,然后单击“以管理员身份运行”
  • 在记事本中,单击CTRL + O以打开文件。
  • 在“打开”对话框中,将C:\\ ProgramData \\ ssh粘贴到“文件名”字段中,然后按Enter
  • 使用“文件名”字段右侧的下拉菜单,将“文本文档(* .txt)”更改为“所有文件”
  • 在文件列表中双击sshd_config将其打开。

图片#3扩大 

Figure3-1Figure3-1
在Windows 10中配置PowerShell SSH远程处理(图片来源:Russell Smith)

在文件中,找到以下行:

 

#PasswordAuthentication是

编辑它以删除该行开头的哈希,如下所示:

密码验证是

最后,我们需要在目标计算机上创建一个PowerShell主机进程作为SSH子系统。更改sshd_config的#no no default defaults of no systems部分:

#覆盖没有子系统的默认值
子系统sftp sftp-server.exe

为此:

#覆盖没有子系统的默认值
#子系统sftp sftp-server.exe
子系统powershell c:/progra~1/powershell/7/pwsh.exe -sshs -NoLogo

请注意,如果您使用的是旧版本或更高版本的PowerShell,则可能需要更改PowerShell(pwsh.exe)运行时的路径。在文件路径中,我们为“ Program Files”使用8.3的简称。这是因为Windows的OpenSSH中存在一个错误,该错误会阻止您在子系统可执行路径中使用空格。

现在保存并关闭文件。

图片#4扩大 

Figure4-1-1280x727-1Figure4-1-1280x727-1
在Windows 10中配置PowerShell SSH远程处理(图片来源:Russell Smith)

若要应用更改,请使用Restart-Service PowerShell cmdlet重新启动sshd服务:

PowerShell

1 Restart-Service sshd

 

测试PowerShell远程处理和SSH

在远程连接到设备之前,让我们检查PowerShell Remoting首先在本地工作。需要在PowerShell中而不是Windows PowerShell中执行以下步骤,因为它不支持SSH作为远程协议。要打开PowerShell,请在任务栏上的搜索框中键入powershell。在搜索结果中,请确保单击PowerShell,而不是Windows PowerShell。

在PowerShell窗口中,使用New-PSSession在本地设备上创建一个新的远程会话。出现提示时,输入您帐户的密码。

PowerShell

1 $session = New-PSSession -HostName localhost

现在,让我们使用Get-PSSession检查会话详细信息。如您在#IMAGE中所见,SSH在“传输”下列出。

PowerShell

1 Get-PSSession

 

图片#5扩大 

Figure5Figure5
在Windows 10中配置PowerShell SSH远程处理(图片来源:Russell Smith)

配置您的管理设备

现在剩下要做的就是配置用于管理远程PC的设备。抓住从GitHub最新版本的PowerShell的位置并安装它。现在,使用Windows PowerShell安装OpenSSH客户端。重复上述步骤,但是这次不需要OpenSSH服务器组件。只需安装客户端组件:

PowerShell

1 Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

就是这样!如果您具有到端口22上的远程设备的直接网络连接,则应该能够使用SSH建立PowerShell Remoting会话。您可以使用Enter-PSSession进行连接,如下所示。指定-Hostname参数可确保PowerShell使用SSH作为连接协议。

将WIN10-1替换为您要连接的远程设备的名称。如果未指定,PowerShell将使用本地计算机的用户名。要使用域用户帐户登录,请使用username:domain格式,如下所示:

PowerShell

1 Enter-PSSession -HostName WIN10-1 -UserName russell:ad.contoso.com

如果您使用-Hostname或-SSHTransport参数,Invoke-Command和New-PSSession也支持SSH协议。

下载最新版Windows 11 Pro ISO文件:点击进入   持续更新原装纯净版Win11 

相关内容

热门资讯

Windows 11 和 10... Windows 11/10 文件夹属性中缺少共享选项卡 – 已修复 1.检查共享选项卡是否可用 右键...
事件 ID 7034:如何通过... 点击进入:ChatGPT工具插件导航大全 服务控制管理器 (SCM) 负责管理系统上运行的服务的活动...
Hive OS LOLMine... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
Radmin VPN Wind... Radmin VPN 是一款免费且用户友好的软件,旨在牢固地连接计算机以创建一个有凝聚力的虚拟专用网...
Hive OS 部署 PXE ... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
如何修复 Steam 内容文件... Steam 内容文件锁定是当您的 Steam 文件无法自行更新时出现的错误。解决此问题的最有效方法之...
在 Windows 11 中打... 什么是链路状态电源管理? 您可以在系统控制面板的电源选项中看到链接状态电源管理。它是 PCI Exp...
如何在Instagram上扫描... 如何在Instagram上扫描名称标签/ QR? 总而言之,您可以通过大约四种不同的方法来扫描这些I...
Hive OS 新建飞行表的方... 目前不清退的交易所推荐: 1、全球第二大交易所OKX欧意 国区邀请链接: https://www.m...
farols1.1.501.0... faro ls 1.1.501.0(64bit)可以卸载,是一款无需连接外部PC机或笔记本计算机即可...