Win配置:SSH

12/31/2025 运维Windows

目录


参考:


# Win配置:SSH

# 概要说明

# 常用命令


1

# 环境依赖

软件/系统 版本 架构 包名 安装方式 备注
Windows 11 x86_64

# SSH配置

# 检查 OpenSSH

以管理员身份打开 PowerShell 并运行以下命令安装:

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

image-20250314120025980

# 安装 OpenSSH

如果任何 SSH 客户端或服务器功能不可用,以管理员身份打开 PowerShell并运行以下命令安装:

  • 安装 OpenSSH 客户端
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~ 0.0.1.0
1
  • 安装 OpenSSH 服务器
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
1

# 启动 SSH 服务

  • 启动 OpenSSH 服务
Start-Service sshd
1
  • 设置 SSH 服务在启动时自动启动
Set-Service -Name sshd -StartupType 'Automatic'
1

# 配置防火墙允许 SSH 流量

默认情况下,Windows 防火墙可能会阻止 SSH 流量。可以通过以下命令允许 SSH 流量:

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

# 配置 SSH 服务器

  • 编辑 sshd_config 文件

SSH 配置文件通常位于 C:\ProgramData\ssh\sshd_config。您可以使用文本编辑器打开并编辑该文件。

例如,使用 PowerShell 编辑器(例如 notepad)打开文件:

notepad C:\ProgramData\ssh\sshd_config
1

在该文件中,您可以配置 SSH 服务的各种选项,如禁用密码登录、配置公钥认证等。

  • 重新启动 SSH 服务

如果您对配置文件进行了更改,需要重新启动 SSH 服务来应用更改:

Restart-Service sshd
1

# 使用 SSH 客户端连接到远程主机

Windows 11 自带的 OpenSSH 客户端可以用于通过 SSH 连接到远程服务器。在 PowerShell 中使用以下命令连接到远程主机:

ssh username@hostname
1

替换 usernamehostname 为您要连接的远程主机的用户名和 IP 地址或主机名。

# 配置 SSH 密钥认证(可选)

如果您希望通过 SSH 密钥进行认证而不是密码,可以生成 SSH 密钥对并将公钥添加到远程服务器的 ~/.ssh/authorized_keys 文件中。

  • 生成 SSH 密钥对

在 PowerShell 中运行以下命令:

ssh-keygen
1

然后按照提示生成密钥对。默认情况下,密钥将保存在 C:\Users\<YourUserName>\.ssh\id_rsa

  • 将公钥添加到远程服务器

将公钥文件内容复制到远程主机的 ~/.ssh/authorized_keys 文件中:

type $env:USERPROFILE\.ssh\id_rsa.pub | ssh username@hostname "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
1
上次更新时间: 3/14/2025, 8:21:22 AM