使用 Windows 设置(推荐,最简单)
这是在 Windows 10/11 上安装和配置 OpenSSH 服务器的最直接方法。

步骤 1:安装 OpenSSH 服务器
- 打开“设置”:点击“开始”菜单,选择“设置”(齿轮图标),或者按
Win + I快捷键。 - 进入“应用”:在设置窗口中,选择“应用”。
- 打开“可选功能”:在左侧边栏中,点击“可选功能”。
- 添加功能:
- 点击页面顶部的“查看功能”。
- 在搜索框中输入
OpenSSH。 - 你会看到两个选项:
- OpenSSH 服务器:这是我们需要的,它允许其他计算机通过 SSH 连接到你的 Windows。
- OpenSSH 客户端:这个通常已经预装,它允许你从 Windows 命令行连接到其他 SSH 服务器,如果不确定,可以两个都勾选。
- 勾选 OpenSSH 服务器,然后点击“下一步”。
- 点击“安装”。
- 等待安装完成,系统会自动下载并配置好所需文件。
步骤 2:启动并配置 SSH 服务
- 打开“服务”管理工具:
- 按
Win + R键,输入services.msc,然后按回车。
- 按
- 找到 OpenSSH SSH 服务:
- 在服务列表中,找到名为
OpenSSH SSH Server的服务。
- 在服务列表中,找到名为
- 启动服务并设置启动类型:
- 启动类型:双击该服务,在“常规”选项卡中,将“启动类型”设置为 “自动”,这样每次开机后 SSH 服务都会自动运行。
- 服务状态:点击“启动”按钮,立即运行该服务。
- 点击“应用”,然后点击“确定”。
步骤 3:配置 Windows 防火墙
为了能让外部设备访问你的 SSH 服务,需要允许防火墙放行 22 端口(SSH 默认端口)。
- 打开“Windows Defender 防火墙”:
在“开始”菜单搜索“防火墙”,并打开“Windows Defender 防火墙”。
- 允许应用或功能通过防火墙:
在左侧边栏,点击“允许应用或功能通过 Windows Defender 防火墙”。
- 更改设置:
点击右上角的“更改设置”按钮(需要管理员权限)。
(图片来源网络,侵删) - 添加 OpenSSH:
- 在列表中,找到并勾选
OpenSSH SSH Server。 - 确保在“专用”和“公用”列中都打上勾(根据你的网络环境选择,如果是在家庭网络,勾选“专用”即可;如果需要从任何公共网络访问,则勾选“公用”)。
- 点击“确定”。
- 在列表中,找到并勾选
步骤 4:连接测试
你的 SSH 服务器已经准备就绪了!
- 获取你的 Windows 电脑 IP 地址:
- 打开命令提示符或 PowerShell,输入
ipconfig并回车。 - 找到“无线局域网适配器 Wi-Fi”或“以太网适配器”下的 “IPv4 地址”,这就是你的电脑在局域网内的 IP 地址(
168.1.10)。
- 打开命令提示符或 PowerShell,输入
- 从另一台电脑连接:
- 在 Windows 上:打开 PowerShell 或命令提示符,输入
ssh 你的用户名@你的IP地址(ssh administrator@192.168.1.10),首次连接时会提示确认主机指纹,输入yes,然后输入你的 Windows 用户密码。 - 在 macOS 或 Linux 上:打开终端,输入同样的命令。
- 在手机上:使用 Termius、JuiceSSH 等 SSH 客户端 App,输入 IP 地址、用户名和端口(默认22)进行连接。
- 在 Windows 上:打开 PowerShell 或命令提示符,输入
连接成功后,你就可以在终端里操作你的 Windows 电脑了,就像操作 Linux 服务器一样。
使用 PowerShell(适合高级用户)
如果你习惯使用命令行,可以通过 PowerShell 来完成安装。
步骤 1:以管理员身份运行 PowerShell
在“开始”菜单搜索 PowerShell,右键点击“Windows PowerShell”,选择“以管理员身份运行”。
步骤 2:安装 OpenSSH 服务器
在 PowerShell 窗口中,依次执行以下命令:
# 检查是否已安装 Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*' # 如果未安装,执行以下命令进行安装 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
步骤 3:启动并设置自动启动
# 启动 SSH 服务 Start-Service sshd # 设置服务为自动启动 Set-Service -Name sshd -StartupType 'Automatic'
步骤 4:配置防火墙
# 新建防火墙规则,允许入站连接 New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
至此,服务器端的安装和基本配置就完成了,后续的连接测试与方法一相同。
重要后续配置(安全建议)
默认配置虽然能用,但为了安全,建议进行以下设置。
修改默认端口(提高安全性)
默认的 22 端口是所有黑客扫描的首要目标,修改成一个不常用的端口可以大大减少被攻击的几率。
-
编辑配置文件:
- 使用记事本(以管理员身份运行)打开文件:
C:\ProgramData\ssh\sshd_config - 找到这一行:
#Port 22 - 将其修改为你想要的端口号(
2222),并去掉开头的 号:Port 2222 - 注意:确保你选择的端口没有被其他程序占用,并且大于 1024。
- 使用记事本(以管理员身份运行)打开文件:
-
重启 SSH 服务:
- 打开“服务”(
services.msc),找到OpenSSH SSH Server,右键点击选择“重启”。
- 打开“服务”(
-
更新防火墙规则:
- 如果你在防火墙中设置了允许 22 端口,现在需要添加一个新的规则允许新的端口(2222),或者修改旧规则。
- 你也可以在 PowerShell 中使用
Remove-NetFirewallRule -Name sshd删除旧规则,然后用New-NetFirewallRule重新创建一个指向新端口的规则。
-
连接时使用新端口:
- 在连接时,你需要指定端口号,
ssh username@ip_address -p 2222
- 在连接时,你需要指定端口号,
使用密钥认证(更安全、更方便)
每次输入密码很麻烦,而且有被暴力破解的风险,使用 SSH 密钥对是更安全的认证方式。
-
在客户端生成密钥对:
- 在你用来连接的电脑上(客户端),打开终端(PowerShell, CMD, macOS Terminal 等)。
- 运行
ssh-keygen -t rsa -b 4096,按回车接受默认的文件路径(通常是~/.ssh/id_rsa),可以为密钥设置一个密码短语(Passphrase),这更安全。 - 这会生成两个文件:
id_rsa(私钥,绝对不能泄露)和id_rsa.pub(公钥)。
-
将公钥复制到 Windows 服务器:
- 最简单的方法是使用
ssh-copy-id命令(如果你的客户端支持):ssh-copy-id -i ~/.ssh/id_rsa.pub 你的用户名@你的服务器IP
- 如果客户端不支持
ssh-copy-id,你可以手动复制:- 用记事本打开你的公钥文件
id_rsa.pub,复制全部内容。 - 在 Windows 服务器上,确保目录
C:\Users\你的用户名\.ssh存在,并在其中创建一个名为authorized_keys的文件(如果不存在)。 - 将你刚才复制的公钥内容粘贴到
authorized_keys文件中,保存。
- 用记事本打开你的公钥文件
- 最简单的方法是使用
-
禁用密码登录(强制使用密钥):
- 再次编辑服务器上的配置文件
C:\ProgramData\ssh\sshd_config。 - 找到并修改以下两行:
#PubkeyAuthentication yes # 确保这行是启用的(去掉#) #PasswordAuthentication yes # 将这行注释掉或改为 no修改后为:
PubkeyAuthentication yes PasswordAuthentication no - 警告:在禁用密码登录之前,请务必确保你的密钥认证已经可以正常工作,否则你将被锁在服务器外面!
- 重启 SSH 服务:
net stop sshdnet start sshd。
- 再次编辑服务器上的配置文件
你就可以用私钥安全地登录了,无需再输入密码。
常见问题排查
- 连接被拒绝:
- 检查 SSH 服务是否正在运行(
services.msc)。 - 检查 Windows Defender 防火墙是否放行了正确的端口。
- 如果修改了端口,确保连接时使用了
-p参数指定新端口。
- 检查 SSH 服务是否正在运行(
- Connection timed out:
这通常是网络问题,确保你的客户端和服务器在同一个局域网内,或者服务器端的防火墙(包括路由器)允许来自你客户端 IP 的连接。
- Permission denied (publickey,password).:
- 如果你禁用了密码登录,这是正常的,说明你只能用密钥登录。
- 如果没禁用,请检查用户名和密码是否正确。
- 如果使用密钥登录,请检查公钥是否正确地放到了服务器的
authorized_keys文件中,并且文件权限正确(.ssh目录和authorized_keys文件的所有者都应该是你的用户,并且没有不安全的权限)。
希望这份详细的指南能帮助你成功搭建自己的 Windows SSH 服务器!
