网站首页 > 技术文章 正文
SSH(Secure Shell)是大多数开发人员和系统管理员用来通过 Linux 远程连接托管服务器或任何云服务的工具,因为 SSH 在 Linux 中是内置的。然而,对于 Windows 呢?是的,Windows 系统上有 SSH 客户端,但服务器包是没有的。因此,本文将讨论如何在 Windows 11 或 10 上使用 Winget 命令行包管理器快速设置 OpenSSH 服务器包。
什么是 SSH,为什么你需要它?
SSH(Secure Shell)是一种通过加密网络安全连接到远程系统的协议。它应用广泛,远程服务器访问,需要快速发出命令并管理系统,而无需物理访问它。可以在其基础上使用 SCP 和 SFTP 进行加密文件传输。可以进行隧道和端口转发
了解如何安装和使用 SSH 对于使用 Linux 服务器、云实例或 Git 仓库 是至关重要的。
Winget 是什么?
对于那些对包管理器不太熟悉的人来说,Winget 是微软为 Windows 10 和 11 系统开发的开源命令行工具。它允许用户从 CMD 或 PowerShell 界面安装应用程序包,无需访问软件网站并手动单独下载它们。例如,要在 Windows 上安装 Google Chrome,我们无需访问其官方网站;我们只需运行一个 Winget 命令即可完成安装。我们甚至可以通过一个命令升级或卸载应用程序,无需手动下载安装程序。
简而言之,Winget 使安装软件变得极其简单。同样,使用 Winget 安装 SSH 更快,并且可以确保你获得最新官方版本,无需搜索下载链接。聪明你的应该发现,winget 有点类似于 Linux 系统下的 yum、dnf、apt、yast、apk 等包管理器
第一步:打开 PowerShell 或命令提示符
我们需要管理员权限来安装应用程序;因此,我们必须以管理员身份启动命令提示符或 PowerShell。为此,右键单击 Windows 【 开始 】 按钮,点击 【 终端管理员】 或 【 Windows PowerShell(管理员)】 选项。
第二步:搜索 OpenSSH 包
我们首先需要确认 OpenSSH 包是否通过 Winget 仓库可用;因此,在命令终端中输入以下命令:
winget search openssh
如屏幕截图所示,有两个与我们查询相关的包。在这里,我们将安装第二个 Microsoft 的 Preview 版本。
第三步:运行 Winget SSH 安装命令
借助上一步的命令,我们知道了要安装的包的确切 APP ID。因此,让我们使用 “winget install” 命令来获取 OpenSSH Beta 包。
winget install Microsoft.OpenSSH.Preview
此命令执行以下操作:获取 Microsoft OpenSSH 包。从 Winget 仓库中安装最新可用版本。确保包正确安装,无需手动下载。
第四步:验证 SSH 安装
安装完成后,通过运行以下命令来检查 SSH 是否已安装:
ssh -V
这将返回已安装的 SSH 版本,如果返回了类似 OpenSSH_for_Windows_9.5p1, LibreSSL 3.8.2 这样的信息,就证明安装成功。
如何在 Windows 上启用和启动 SSH
安装 SSH 只是过程的一部分。你必须启用并启动 SSH 服务,才能将 SSH 用作 Windows 10 或 11 服务器。
第一步:启用 SSH 服务
在 PowerShell 中运行以下命令以启用 SSH。这将确保 SSH 在你启动电脑时自动启动。
Set-Service -Name sshd -StartupType Automatic
第二步:手动启动或停止 SSH 服务
现在,要手动在 Windows 上启动或停止 SSH 服务器服务,请使用 PowerShell,以下是命令:
要手动启动 SSH 服务器,请输入:
Start-Service -Name sshd
如果需要停止 SSH,请使用:
Stop-Service -Name sshd
第三步:允许 SSH 通过 Windows 防火墙
默认情况下,SSH 端口 22 允许通过 Windows Defender 防火墙进行通信;然而,如果未允许,我们可以使用以下命令打开它。这将允许通过 SSH 进行远程连接。
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
现在,你的系统已准备好接受 SSH 连接!
如何在 Windows 10 或 11 上使用 SSH
到目前为止,我们已经讨论了使用 Winget 安装 SSH 服务器的过程。让我们看看一些基本用例:
1. 连接到远程服务器
一旦有了 SSH,我们就可以使用它来在 Windows 上安全地连接到服务器,无论是 Linux VPS 还是云实例(如 AWS、Azure 或 DigitalOcean),以下是使用 SSH 登录的示例:
ssh username@your-server-ip
例如,如果服务器 IP 是 192.168.1.100,用户名是 admin,请运行:
ssh admin@192.168.1.100
如果是首次连接,你会看到一个指纹确认——输入 yes 继续。
2. 使用 SCP 安全传输文件
想在 Windows 机器和远程服务器之间传输文件吗?使用 SCP:
scp myfile.txt user@remote-ip:/home/user/
这会将 myfile.txt 安全地复制到远程机器的 /home/user/ 目录。
3. 创建 SSH 密钥以实现无密码登录
无需每次输入密码,你可以使用 SSH 密钥:
在 Windows 上生成 SSH 密钥
在 PowerShell 中运行以下命令:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
然后,将密钥复制到远程服务器:
ssh-copy-id user@remote-ip
现在,你可以无需输入密码登录!
解决 SSH 安装问题
如果你遇到问题,这里有一些解决方法:
1. 未找到 Winget 命令
如果未识别 winget,请确保你使用的是 Windows 10(版本 1809+)或 Windows 11。如果缺失,请从 Microsoft Store 安装 App Installer 包。
2. SSH 命令未找到
如果安装后 ssh 无法工作,请重启电脑或手动将 SSH 添加到系统的 PATH 变量:
setx PATH "%PATH%;C:\Windows\System32\OpenSSH"
然后,重新启动 PowerShell 并再次尝试 ssh -V。
3. SSH 服务无法启动
如果 SSH 无法启动,请运行:
Get-Service sshd
如果已停止,请使用以下命令重新启动它:
Start-Service ssh
正如本文所见,使用 Winget 在 Windows 上安装 SSH 非常简单,只需一个命令即可完成。一旦在 Windows 11 或 10 上完全配置了 SSH,使用 Git 管理 云服务器 或自动化任务将变得轻而易举。那些寻找替代方案的人可以尝试 SSH 隧道 或 使用 Windows 子系统 for Linux (WSL) 配置 SSH,这更容易且更灵活,特别是如果你熟悉 Ubuntu Linux 命令。
- 上一篇: 网络篇:朋友面试之https认证加密过程
- 下一篇: HTTPS全站加密时代 网宿推证书优选方案
猜你喜欢
- 2025-07-01 Java 如何加载带密码的 PCKS8 PEM 私钥
- 2025-07-01 犯罪啊 2.8万台路由器居然共用一把RSA密钥
- 2025-07-01 HTTPS全站加密时代 网宿推证书优选方案
- 2025-07-01 网络篇:朋友面试之https认证加密过程
- 2025-07-01 如何安全管理SSH密钥以防止服务器被入侵
- 2025-07-01 在 Windows 10 上实现免密码 SSH 登录
- 2025-07-01 HTTPS的加密过程是怎样的?(https加密和解密的过程)
- 2025-07-01 Linux系统实现SSH安全免密登录的设置与管理
- 2025-07-01 Burpsuit插件开发之RSA加解密(burpsuite安装插件)
- 2025-07-01 「Java工具类」rsa非对称加密java非对称加密rsa工具类
你 发表评论:
欢迎- 582℃几个Oracle空值处理函数 oracle处理null值的函数
- 576℃Oracle分析函数之Lag和Lead()使用
- 562℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 561℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 556℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 546℃【数据统计分析】详解Oracle分组函数之CUBE
- 535℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 530℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端懒加载 (49)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)