ssh -o 选项导致连接到 Linux 服务器的 Windows 10 客户端挂起

ssh -o 选项导致连接到 Linux 服务器的 Windows 10 客户端挂起

这挂在 Windows 10 客户端上,但我最近确实需要使用 Windows 10 客户端:

ssh -4 -X -i my.pem [email protected] -o ConnectTimeout=604800

相比之下,这在过去的 Linux Ubuntu 客户端上运行良好:

ssh -X -o ConnectTimeout=604800 -i "my.pem" [email protected]

Microsoft 文档链接到 OpenBSD 文档。但是问题似乎是 Windows 10 特有的。我确实需要长时间保持连接。

移动参数、-4 的存在与否以及删除 = 字符均不会产生任何影响。

有趣的是,这在 Windows 10 客户端上运行良好,但缺少我需要的选项:

ssh -4 -X -i my.pem [email protected]
Welcome to Ubuntu 16.04.5 LTS (GNU/Linux 4.4.0-142-generic x86_64)

最大的问题是,Windows 10 客户端上命令行选项“-o”系列的正确格式是什么?为什么它与 Linux 客户端不一样?

我知道可能有一个文件包含这些选项(-o 选项是一长串可能的字符串)。但是 OpenBSD 文档没有也无法描述在 Windows 10 上将此文件放在哪里。目前,Windows 10 上要使用的文件名和目录对我来说是个谜。不过我想 bsd 文档可能会解释这个文件的格式。

更新:我尝试制作一个包含设置的配置文件,格式与命令行相同,然后以 4 种不同的方式启动它,但仍然挂起:

ssh -F .config -4 -X -i my.pem [email protected] -o ConnectTimeout=604800
ssh -F ".config" -4 -X -i my.pem [email protected] -o "ConnectTimeout=604800"
ssh -F .config -4 -X -i my.pem [email protected]
ssh -F ".config" -4 -X -i my.pem [email protected]

文档:

https://man.openbsd.org/ssh

https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_overview

更多的:

我需要的另一个 ssh 命令(如下)也挂起了。我需要进行端口转发,这样我就可以在我的客户端计算机中运行浏览器进程,但使用服务器的 Web 服务器来托管我的 jupyter 笔记本以进行机器学习项目。这是一个不同的 ssh 命令,但它有相同的挂起问题。也许 ssh 在 Windows 10 上不受真正支持,如果这是真的,我将放弃 Windows 10,回去为客户端构建一个 Linux 工作站,因为我知道它工作正常。这让我很生气,因为这太浪费时间了。

ssh -i my.pem -N -f -L localhost:8889:localhost:8889 [email protected]

更新:使用 -vvv 参数时,它显示挂起,其中端口 22 没有向客户端发送回任何内容:

ssh -4 -X -i my.pem [email protected] -o ConnectTimeout=604800 -vvv
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5

debug3: Failed to open file:C:/Users/mrcod/.ssh/config error:2

debug3: Failed to open file:C:/ProgramData/ssh/ssh_config error:2

debug2: resolve_canonicalize: hostname 192.168.1.111 is address

debug2: ssh_connect_direct: needpriv 0

debug1: Connecting to 192.168.1.111 [192.168.1.111] port 22.

debug2: fd 3 setting O_NONBLOCK

有人能够通过 ssh 从 Windows 10 连接到 Unix 服务器吗?他们肯定有。这在 2019 年并不是什么不寻常的任务,因为 AWS 是云系统的创新旗舰,全球大多数网站使用 Linux 服务器。我不知道为什么似乎没人知道任何事情。我的英语也不差。

我没有看到调试输出中的最后一项有任何真正的帮助。

由于这里没有其他想法,下一步似乎是进行更多实验,将另一个配置文件放在调试输出所显示正在寻找的其他位置(目录),看看是否有任何设置可以修复此处端口 22 挂起的问题。我认为这里真的没有什么可做的,所以我很悲观,除非有人在 Windows 10 上实际使用 ssh,因为根据我提供的微软链接,这个软件是在 Windows 10 上编译的,而 openbsd 就是从那里编译的。

答案1

Windows OpenSSH 非常新(测试版),并且仅在 2018 年 4 月更新后在 Windows 10 上默认启用。(https://www.howtogeek.com/336775/how-to-enable-and-use-windows-10s-built-in-ssh-commands/)。已知存在仅支持ed25519密钥等问题。

我会使用 SuperPuTTY 和 PuTTY,多年来它一直是 Windows 的事实上的 SSH 客户端(IMO)。但是,从阅读这个 GitHub 帖子(https://github.com/PowerShell/Win32-OpenSSH/issues/973),似乎 Windows 10 OpenSSH 的 GitHub 版本有一些改进/功能修复,可能无法通过默认安装获得。尝试使用 GitHub 版本!-->https://github.com/PowerShell/openssh-portable/releases

https://www.liquidweb.com/kb/using-ssh-client-windows-10/

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

https://github.com/jimradford/superputty/releases/tag/1.4.0.9

相关内容