介绍

        SSH (安全外壳协议) 是一个加密的网络协议,用于在不安全的网络上登录到远程计算机。尽管SSH最初是为Unix系统设计的,但现在Windows系统也支持SSH服务。在这篇文章中,我们将讨论如何在Windows系统上设置SSH服务器,并从另一台计算机上使用SSH客户端连接到它。

步骤1: 在Windows上安装OpenSSH Server

打开“设置”应用。点击“应用”。

 在右侧点击“可选功能”。(或者直接在查找设置中搜索可选功能)

点击“添加功能”。

在列表中找到并选择“OpenSSH 服务器”,然后点击“安装”。可以顺手把OpenSSH客户端也安装上

 

安装完成后,OpenSSH服务器将自动运行,并每次启动Windows时自动启动。

输入命令在PowerShell(管理员)模式下操作

输入命令 Get-WindowsCapability -Online | ? Name -like 'OpenSSH*' 来查看OpenSSH服务器与客户端是否安装完成,安装完成如图下所示

 Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

 步骤2:开启SSH服务

输入命令

net start sshd

 输入命令ssh localhost检查连接状态,图下所示表示连接正常

ssh localhost

输入命令Set-Service -Name sshd -StartupType 'Automatic'使SSH服务开机自启动 

Set-Service -Name sshd -StartupType 'Automatic'

 如果如图下所示,表示ssh服务可能未开启,输入net start sshd开启服务即可;也有可能防火墙堵塞了22端口

 

 

解决办法:

确保SSH服务器可以接收外部连接,你需要在Windows Defender防火墙或任何其他第三方防火墙软件中开放22端口。

  1. 打开“控制面板”。
  2. 选择“系统和安全”。
  3. 点击“Windows Defender防火墙”。
  4. 在左侧选择“允许应用通过Windows防火墙通信”。
  5. 在列表中找到“OpenSSH Server”并确保它被允许通过防火墙。

步骤3: 使用SSH客户端连接到Windows

  1. 从另一台计算机上,打开SSH客户端。
  2. 打开PowerShell使用以下命令连接到Windows SSH服务器:
ssh 用户名@Windows计算机的IP地址

例如,如果你的Windows计算机的IP地址是192.168.1.100,你的用户名是john,那么你应该输入:

ssh john@192.168.1.100

然后输入密码。(第一次连接先输入yes,然后再输入密码即可)

 现在,你应该已经成功连接到了Windows计算机,并可以执行命令。

注意事项

  • 默认情况下,非管理员用户也可以通过SSH连接到Windows。要禁止非管理员用户连接,你可能需要对sshd_config文件进行修改
  • 确保你的Windows密码足够复杂,以防止未经授权的访问。
  • 考虑更改默认的SSH端口(22)以增加安全性。

问题解决

常见问题一

出现 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 字样

原因 :

这是 SSH 的一个安全警告。这种警告通常发生在以下情况:

  1. 目标服务器的公钥已更改。这可能是因为您重新安装了服务器、更换了服务器硬件或手动更改了服务器的 SSH 密钥。
  2. 有人尝试对您的连接进行中间人攻击(Man-in-the-Middle attack)。这种情况比较少见,但不能完全排除。

解决方法:

为了解决这个问题,您应该首先确定原因。如果您确信服务器的公钥已经合法更改,那么可以按照以下步骤解决:

打开终端或命令提示符。

使用以下命令删除指定 IP 地址的旧密钥条目:

ssh-keygen -R 192.168.136.128       //你的ssh服务器IP

之后,您可以再次尝试连接到服务器。在首次连接时,系统会提示您接受新的公钥。确认后即可正常连接。

但是,如果您没有对服务器进行任何更改,并且对此警告感到不安,那么您应该进一步调查,以确保您的网络环境没有遭受攻击。

 

总结

通过以上步骤,你应该可以轻松地在Windows上设置SSH服务器并从远程连接到它。SSH为你提供了一个安全的方式来管理和控制Windows计算机。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐