windows开启sshd服务实现远程登录

与Windows一起开始使用OpenSSH

OpenSSH是一个用于远程登录的连接工具,它使用SSH协议。它加密了客户端和服务器之间的所有流量,以消除窃听、连接劫持和其他攻击。

可以使用兼容OpenSSH的客户端连接到Windows Server和Windows客户端设备。

先决条件

在开始之前,您的计算机必须满足以下要求:

  • 至少运行Windows Server 2019或Windows 10(1809版)的设备。

  • PowerShell 5.1或更高版本。

  • 是内置Administrators组的成员账户。

先决条件检查

为了验证您的环境,请打开提升权限的PowerShell会话,并执行以下操作:

  • 输入 winver.exe 并按Enter键查看Windows设备的版本详情。

  • 运行
    $PSVersionTable.PSVersion。验证您的主版本至少为5,次版本至少为1。了解更多关于在Windows上安装PowerShell的信息。

  • 运行以下命令。当您是内置Administrators组的成员时,输出显示
    True

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
```
(New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
```

```

## 启用OpenSSH

在这里
https://github.com/PowerShell/Win32-OpenSSH/releases 下载Windows版的OpenSSH。

![](/images/blog/1742927618528_image_1.png)

安装完事后,使用PowerShell启用SSHD:

1. 以管理员身份打开PowerShell并运行以下命令来启动SSHD服务:

```powershell

启动sshd服务

Start-Service sshd

1
2
3
4
5
6
  
```

2. 您还可以运行以下可选但推荐的命令来自动启动SSHD,以确保它保持启用状态:

```powershell

Set-Service -Name sshd -StartupType ‘Automatic’

1
2
3
4
5
6
  
```

3. 最后,运行以下命令以验证SSHD设置过程是否自动配置了防火墙规则:

```powershell

if (!(Get-NetFirewallRule -Name “OpenSSH-Server-In-TCP” -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) {
Write-Output “防火墙规则’OpenSSH-Server-In-TCP’不存在,正在创建…”
New-NetFirewallRule -Name ‘OpenSSH-Server-In-TCP’ -DisplayName ‘OpenSSH Server (sshd)’ -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
} else {
Write-Output “防火墙规则’OpenSSH-Server-In-TCP’已创建并存在。”
}

1
2
3
4
5
6
7
8
9
10
11
12
  
```

全过程如下:

![](/images/blog/1742927618528_image_2.png)

## 连接到OpenSSH服务器

安装完成后,您可以使用已安装OpenSSH客户端的Windows或Windows Server设备连接到OpenSSH服务器。从PowerShell提示符运行以下命令。

```powershell

ssh domain\username@servername

1
2
3
4
5
6
  
```

也可以用类似Linux下的ssh登录方式:

```powershell

ssh user@192.168.0.xxx

  

连接成功后的效果如下:

江达小记