Windows 上的 SSH 连接重置

Windows 上的 SSH 连接重置

我正在努力在 Windows 系统上设置 OpenSSH。

我尝试遵循系统安装(例如) 以及从二进制文件手动安装。我将 OpenSSH 文件复制到 C:\Program Files 中,然后从那里进行安装。

OpenSSH 服务器和代理似乎配置正确,但是当我尝试 ssh 到本地主机时,总是出现以下错误:

Connection reset by ::1 port 22

以下是一些调试命令:

Get-Service ssh-agent

  Status   Name               DisplayName
  ------   ----               -----------
  Running  ssh-agent          OpenSSH Authentication Agent

Get-Service sshd

  Status   Name               DisplayName
  ------   ----               -----------
  Running  sshd               OpenSSH SSH Server

netstat -nao | find /i '":22"'
  TCP    0.0.0.0:22             0.0.0.0:0              LISTENING       5680
  TCP    [::]:22                [::]:0                 LISTENING       5680

Get-NetFirewallRule -Name *OpenSSH-Server* |select Name, DisplayName, Description, Enabled

  Name                  DisplayName           Description Enabled
  ----                  -----------           ----------- -------
  OpenSSH-Server-In-TCP OpenSSH Server (sshd)             True

whoami

  pcname\m.ceradini

ssh pcname\m.ceradini@localhost

  Connection reset by ::1 port 22

sshd_config 是默认的。根据其他教程的建议,我也尝试在 sshd_config 中注释 Match Group Administrators,但问题仍然存在。

你知道发生了什么吗?我该如何修复这个连接错误?

非常感谢。


更新:

我在这里发布了一些问题和回复的答案。我自己的用户的 SSH 仍然不起作用。

总结一下,我做了以下几件事:

  • 卸载 OpenSSH
  • 删除所有 .ssh 和 Open-SSH 相关文件夹
  • 再次安装 OpenSSH 客户端和服务器(使用 Windows GUI - 从设置) - 然后重新启动
  • 检查所有 SSH 相关命令和服务是否正常运行(Get-Command ssh、Get-Command sshd、Ge​​t-Command ssh-agent、Get-Service sshd、Ge​​t-Service ssh-agent)
  • 为用户创建新密钥
  • 将公钥添加到 .ssh 文件夹中的 authorized_keys
  • “Match Group 管理员”评论道(如上所述这里)在 sshd_config 中
  • 在 sshd_config 中启用“PubkeyAuthentication”
  • 检查 sshd 服务是否正在运行。

调试

Get-Service sshd

Status   Name               DisplayName
------   ----               -----------
Running  sshd               OpenSSH SSH Server

由于默认配置中的 sshd 不会为环回设备提供服务,如果您之前没有在该端口启动隧道,则 localhost 作为远程通常将不起作用:

请执行以下命令:

ssh 电脑名

whoami
pcname\m.ceradini

ssh -v pcname\m.ceradini
OpenSSH_for_Windows_8.6p1, LibreSSL 3.4.3
debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling
ssh: Could not resolve hostname pcname\\m.ceradini: No such host is known.

如果找不到主机,则使用本地 IP 地址,但不是 127.0.0.1,也不是 ::1

ssh -v 192.168.83.185
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: ssh-ed25519
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: SSH2_MSG_KEX_ECDH_REPLY received
debug1: Server host key: ssh-ed25519 SHA256:v7C8pJ1ci+e/ZJKhgyIvZfENRyQHd0sUJSXv8PXIEDM
debug1: load_hostkeys: fopen C:\\Users\\m.ceradini/.ssh/known_hosts2: No such file or directory
debug1: load_hostkeys: fopen __PROGRAMDATA__\\ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen __PROGRAMDATA__\\ssh/ssh_known_hosts2: No such file or directory
debug1: Host '192.168.83.185' is known and matches the ED25519 host key.
debug1: Found key in C:\\Users\\m.ceradini/.ssh/known_hosts:1
debug1: rekey out after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey in after 134217728 blocks
debug1: Will attempt key: sssapisa\\m.ceradini@TNE-Matteo ED25519 SHA256:ugTj7Iu5c0ZbiXgF6yMPO8Hru3rLp5ynP+Aku15WKX0 agent
debug1: Will attempt key: C:\\Users\\m.ceradini/.ssh/id_rsa RSA SHA256:WgcHzwF1tPBwnvdmy9KriQjn+qLuDbOhR80Bmpw10O0
debug1: Will attempt key: C:\\Users\\m.ceradini/.ssh/id_dsa
debug1: Will attempt key: C:\\Users\\m.ceradini/.ssh/id_ecdsa
debug1: Will attempt key: C:\\Users\\m.ceradini/.ssh/id_ecdsa_sk
debug1: Will attempt key: C:\\Users\\m.ceradini/.ssh/id_ed25519
debug1: Will attempt key: C:\\Users\\m.ceradini/.ssh/id_ed25519_sk
debug1: Will attempt key: C:\\Users\\m.ceradini/.ssh/id_xmss
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,[email protected],ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,[email protected],[email protected]>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Offering public key: sssapisa\\m.ceradini@TNE-Matteo ED25519 SHA256:ugTj7Iu5c0ZbiXgF6yMPO8Hru3rLp5ynP+Aku15WKX0 agent
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Offering public key: C:\\Users\\m.ceradini/.ssh/id_rsa RSA SHA256:WgcHzwF1tPBwnvdmy9KriQjn+qLuDbOhR80Bmpw10O0
debug1: Server accepts key: C:\\Users\\m.ceradini/.ssh/id_rsa RSA SHA256:WgcHzwF1tPBwnvdmy9KriQjn+qLuDbOhR80Bmpw10O0
debug1: Authentication succeeded (publickey).
Authenticated to 192.168.83.185 ([192.168.83.185]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: pledge: filesystem full
debug1: ENABLE_VIRTUAL_TERMINAL_INPUT is supported. Reading the VTSequence from console
debug1: ENABLE_VIRTUAL_TERMINAL_PROCESSING is supported. Console supports the ansi parsing
client_loop: send disconnect: Connection reset

通常您不需要使用用户名,因为 ssh 将默认为您当前的用户。因此排除它可以消除错误源。— 我怀疑您不能使用 pcname\m.ceradini,而只能使用 m.ceradini 作为用户名。— 但我不是主要的 Windows 用户,目前无法验证这一点。

关于用户名,我尝试了所有可能的组合,但结果总是相同的。

答案1

您检查过防火墙设置吗?

c:\Windows\system32\Firewall.cpl

查看所用(所需)网络类型中允许的应用程序以获得第一条提示。

然后你继续详细检查:

看看“高级设置 > 传入规则”并检查是否有一条规则允许从“本地端口” 22 到 OpenSSH 服务器的 TCP 流量。

更新:

我还尝试完全关闭防火墙,以确保这不是与防火墙相关的问题

谢谢你的信息。不幸的是,这些“好人”的答案

Get-NetFirewallRule -Name *OpenSSH-Server* |select Name, DisplayName, Description, Enabled

  Name                  DisplayName           Description Enabled
  ----                  -----------           ----------- -------
  OpenSSH-Server-In-TCP OpenSSH Server (sshd)             True

在调试时并没有真正的帮助,而是填充了 powerpoint。

下一步:
由于默认配置中的 sshd 将不会为环回设备提供服务,localhost因此如果您之前没有在该端口启动隧道,远程通常将不起作用:

请执行以下命令:

ssh pcname

其中 pcname 应该是您电脑的真实主机名,但不能被 替代localhost

如果找不到主机,则使用本地 IP 地址,而127.0.0.1不是::1

ssh 192.168.0.5

通常你不需要使用用户名,因为 ssh 将默认为你当前的用户。因此排除它可消除错误源。— 我怀疑你必须不是使用pcname\m.ceradini但仅m.ceradini作为用户名。——但我不是 Windows 的主要用户,目前无法验证这一点。

如果失败,请使用详细模式和提供扩展输出:

ssh -v pcname

相关内容