soarli

Windows下安装OpenSSH客户端
安装方法近期开始学习Redis,准备直接拿Linux虚拟机练手,然而在尝试使用PowerShell进行连接时,确报...
扫描右侧二维码阅读全文
20
2022/01

Windows下安装OpenSSH客户端

安装方法

近期开始学习Redis,准备直接拿Linux虚拟机练手,然而在尝试使用PowerShell进行连接时,确报ssh不存在(如下图),经过查阅资料,解决方案记录如下:

image-20220119233305554

Win+i打开设置:

image-20220120022539650

应用->可选功能:

image-20220120022620876

添加功能:

image-20220120022644460

勾选OpenSSH客户端并点击安装:

正在安装:

image-20220119233136897

安装完成:

image-20220119233232015

解决问题:

image-20220120022816957

(可执行程序路径:C:\Windows\System32\openssh\ssh.exe

他山之石

此外,记录使用 PowerShell 安装 OpenSSH的方法:

以管理员身份运行 PowerShell。 为了确保 OpenSSH 可用,请运行以下 cmdlet

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

如果两者均尚未安装,则此操作应返回以下输出:

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

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

然后,根据需要安装服务器或客户端组件:

# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

这两者应该都会返回以下输出:

Path          :
Online        : True
RestartNeeded : False

启动并配置 OpenSSH 服务器:

若要启动并配置 OpenSSH 服务器来开启使用,请以管理员身份打开 PowerShell,然后运行以下命令来启动 sshd service

# Start the sshd service
Start-Service sshd

# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'

# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify
if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
    Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..."
    New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
    Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists."
}

连接到 OpenSSH 服务器

安装后,可从使用 PowerShell 安装了 OpenSSH 客户端的 Windows 10Windows Server 2019 设备连接到 OpenSSH 服务器,如下所示。 请务必以管理员身份运行 PowerShell

ssh username@servername

连接后,会收到如下所示的消息:

The authenticity of host 'servername (10.00.00.001)' can't be established.
ECDSA key fingerprint is SHA256:(<a large string>).
Are you sure you want to continue connecting (yes/no)?

选择“是”后,该服务器会添加到包含 Windows 客户端上的已知 SSH 主机的列表中。

系统此时会提示你输入密码。 作为安全预防措施,密码在键入的过程中不会显示。

连接后,你将看到 Windows 命令行界面提示符:

domain\username@SERVERNAME C:\Users\username>

使用 Windows 设置来卸载 OpenSSH

若要使用 Windows 设置来卸载 OpenSSH

1.打开“设置”,然后转到“应用”>“应用和功能” 。

2.转到“可选功能”。

3.在列表中,选择“OpenSSH 客户端”或“OpenSSH 服务器” 。

4.选择“卸载”。

使用 PowerShell 卸载 OpenSSH

若要使用 PowerShell 卸载 OpenSSH 组件,请使用以下命令:

# Uninstall the OpenSSH Client
Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

# Uninstall the OpenSSH Server
Remove-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

如果在卸载时服务正在使用中,稍后可能需要重启 Windows

参考资料:

https://www.howtogeek.com/336775/how-to-enable-and-use-windows-10s-built-in-ssh-commands/

https://stackoverflow.com/questions/69721312/ssh-the-term-ssh-is-not-recognized-as-the-name-of-a-cmdlet-function-script

https://docs.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse

https://docs.microsoft.com/zh-cn/powershell/scripting/windows-powershell/install/installing-windows-powershell?view=powershell-7.2

最后修改:2022 年 01 月 20 日 03 : 01 AM

发表评论