Windows 上的 OpenSSH:安装、配置和使用指南
2024-05-31 15:57:40    178    0    0
admin

对于大多数 Windows 用户来说,远程桌面协议(RDP)凭借其友好的图形界面,一直是远程管理的首选。但对于需要更精细控制的系统管理员而言,SSH 才是更适合的选择。它通过命令行实现与远程设备的交互,让管理工作变得更加高效。

过去,Windows 用户想要使用 SSH,通常需要借助像 PuTTY(开源)或 Xshell(商业)这样的第三方工具。现在,Microsoft 推出了内置于 Windows 的 OpenSSH 客户端和服务器,为我们带来了一种更加便捷的选择。

Windows 中的 OpenSSH 是一个可选功能(FoD),需要手动添加,它并不会随系统自动安装。本文将介绍如何在 Windows 11 或 Windows 10(1809 版本及以上)中安装、配置和使用 OpenSSH 客户端和服务器。

什么是 OpenSSH?

OpenSSH 是一款用于安全远程连接和计算机管理的工具套件,它通过加密技术来保障通信安全,其主要功能包括远程登录、命令执行、文件传输和端口转发等。

OpenSSH 包含客户端和服务器两部分,其中:

  • 客户端:用于连接远程服务器。
  • 服务器:在远程服务器上运行,接受客户端的连接请求。

OpenSSH 最初是为 Linux 系统开发的,现在也支持包括 Windows 和 macOS 在内的多种操作系统。

在 Windows 中安装 OpenSSH 客户端和/或服务器

准备条件

在开始安装 OpenSSH 之前,请确保你的电脑满足以下条件:

  • 操作系统:Windows 11 或 Windows 10(1809 版本或更高)。
  • PowerShell 版本:PowerShell 5.1 或以上。
  • 管理员权限:安装 OpenSSH 需要拥有管理员权限。

方法 1:通过「设置」安装

1. 使用Windows + I快捷键打开「设置」,依次选择「系统」>「可选功能」。

2. 点击「查看功能」,在搜索框中输入OpenSSH进行筛选。

3. 根据需要勾选:

  • OpenSSH 客户端:可以使用 ssh 命令连接到其他支持 SSH 的设备。
  • OpenSSH 服务器:允许其他设备通过 SSH 连接到你的电脑。

4. 选择好后点击「下一步」,然后点击「安装」开始安装过程。

方法 2:使用 PowerShell 安装

1. 使用Windows + R快捷键打开「运行」对话框,输入powershell,然后按Ctrl + Shift + Enter以管理员权限打开 PowerShell 窗口。

2. 执行以下命令查看 OpenSSH 安装状态:

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

如果返回NotPresent,表示未安装;返回Installed则表示已安装。

3. 根据需要安装 OpenSSH 客户端和服务器组件:

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

# 安装 OpenSSH 服务器
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0​

在 Windows 中配置 OpenSSH 服务器

当你在 Windows 上安装了 OpenSSH 服务器之后,需要进行一些配置才能接受连接:

1. 使用Windows + R快捷键打开「运行」对话框,输入powershell,然后按Ctrl + Shift + Enter以管理员权限打开 PowerShell。

2. 设置 SSHD 服务自动启动:

Set-Service -Name sshd -StartupType 'Automatic'

3. 启动 SSHD 服务:

Start-Service sshd

4. 检查 SSH 服务器是否在侦听 22 端口:

netstat -an | findstr /i ":22"

5. 确保 Windows Defender 防火墙允许 TCP 22 端口的入站连接:

Get-NetFirewallRule -Name *OpenSSH-Server* | select Name, DisplayName, Description, Enabled​

如规则丢失或被禁用,可以创建新规则:

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

6. (可选)如果要修改配置,如设置用户访问权限,可以编辑sshd_config配置文件:

Start-Process Notepad C:\Programdata\ssh\sshd_config

7. 根据需要修改配置文件,保存后关闭记事本。

8. 完成更改后,重启 SSHD 服务应用配置:

Restart-Service sshd​

按照这些步骤,你的 Windows 就能通过 SSH 协议接受连接了。

9. SSH 连接 Windows 默认启用 Powershell

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force​

10. 服务端-免密登陆设置

1. 服务端切换到C:\ProgramData\ssh\下(首次启动sshd后会生成该文件夹),打开sshd_config文件
2. 修改 sshd_config 配置文件参数

  • 确保以下3条没有被注释
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys
PasswordAuthentication no  (需要将默认的yes改为no,很重要)
  • 确保以下2条有注释掉
<code class="  language-bash"> #Match Group administrators
       #AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys</code>

3. 重启 SSH Server 服务

Restart-Service sshd​​

4. 拷贝客户端 SSH 密钥文件到服务端

需要将客户端生成的 id_rsa.pub 文件密钥, 追加到服务端的 authorized_keys 文件中。authorized_keys 文件路径: windows系统在 C:\Users\Administrator\.ssh 目录下,没有可新建。

使用 OpenSSH 客户端连接远程 SSH 服务器

在 Windows 中安装完 OpenSSH 客户端后,就可以立即与远程 SSH 设备建立连接:

1. 打开命令提示符或 Powershell,执行以下命令来检查 OpenSSH 客户端是否已经正确安装:

ssh

2. 使用以下命令连接到配置了 SSH 的服务器:

ssh [用户名]@[服务器IP]​

首次连接时,会要求你输入密码。如果远程设备使用非标准 22 端口,需要指定端口号:

ssh 用户名@服务器名称 -p 端口号

Windows 上的 OpenSSH 是一个强大的工具,可用于远程管理设备和服务器。本文提供了详细的安装、配置和使用指南,帮助你充分利用 OpenSSH 的功能。

 

OpenSSH 最初是为 Linux 系统开发的,现在也支持包括 Windows 和 macOS 在内的多种操作系统。

在 Windows 中安装 OpenSSH 客户端和/或服务器

准备条件

OpenSSH 最初是为 Linux 系统开发的,现在也支持包括 Windows 和 macOS 在内的多种操作系统。

在 Windows 中安装 OpenSSH 客户端和/或服务器

准备条件

 

Pre: Tmux 使用手册

Next: Linux 批量去除文件名前缀

178
Table of content