准备:两台windows电脑
一台作为服务器,在服务器的电脑上下载openSSH SSH原文
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 连接到你的电脑。
查看是否已添加【OpenSSH】
添加 OpenSSH 客户端和服务器
4 选择好后点击「下一步」,然后点击「安装」开始安装过程。
我这边已添加,就会找不到
可以在输入框里输入【open】来确认是否已存在
方法 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 根据需要修改配置文件,保存后关闭记事本。
OpenSSH 服务器配置文件可以在 sshd_config 手册页中找到。
8完成更改后,重启 SSHD 服务应用配置:
Restart-Service sshd
按照这些步骤,你的 Windows 就能通过 SSH 协议接受连接了。
使用 OpenSSH 客户端连接远程 SSH 服务器
在 Windows 中安装完 OpenSSH 客户端后,就可以立即与远程 SSH 设备建立连接:
1打开命令提示符或 Powershell,执行以下命令来检查 OpenSSH 客户端是否已经正确安装:
ssh
2使用以下命令连接到配置了 SSH 的服务器:
ssh [用户名]@[服务器IP]
3首次连接时,会要求你输入密码。如果远程设备使用非标准 22 端口,需要指定端口号:
ssh 用户名@服务器名称 -p 端口号
在没有密码的服务器上,通过设置 OpenSSH 来允许用户名和密码登录,需要执行以下步骤。注意:强烈建议在使用密码认证时使用强密码,并仅在必要时启用,以免降低安全性。
1. 修改 OpenSSH 配置文件
1. 打开配置文件:sudo nano /etc/ssh/sshd_config
2. 启用密码认证:
找到以下两行(如果不存在可以添加),确保它们的设置如下:PasswordAuthentication yes ChallengeResponseAuthentication no
3. 允许使用 PAM(可选,但通常需要):
确保以下行被启用:UsePAM yes
4. 保存并退出:
按 `Ctrl+O` 保存,按 `Ctrl+X` 退出。2. 重启 SSH 服务
应用修改后的配置文件:sudo systemctl restart sshd
3. 设置用户密码
如果你的服务器当前没有为用户设置密码,可以通过以下命令设置密码:sudo passwd 用户名
按照提示输入并确认新密码。
4. 检查防火墙规则
确保服务器的防火墙允许 SSH 端口(默认 22):sudo ufw allow 22
5. 测试登录
从客户端测试使用用户名和密码进行登录:ssh 用户名@服务器IP
注意事项
1. 安全性:
- 如果在公共网络上使用密码认证,建议启用防护措施(如 Fail2Ban 或 SSH 限制)。
- 尽量避免使用密码登录,推荐结合使用 SSH 公钥认证。2. 禁用 Root 密码登录:
为了防止 Root 用户被暴力破解,可以在配置文件中禁用 Root 密码登录:PermitRootLogin prohibit-password
3. **使用非默认端口(可选):
更改 SSH 的默认端口可降低攻击风险:Port 2222
(记得同步修改防火墙规则)。
完成以上步骤后,OpenSSH 应该已成功启用密码登录功能。
在电脑上打开WinSCP
下载winSCP
在电脑上打开WinSCP
输入主机IP、用户名、电脑登录密码、端口号(我设置的时22),就可以登录另一台电脑了。