Cygwin:ssh和ssh-keygen完全没有反应

3

我遇到了ssh和ssh-keygen的奇怪行为:它们根本没有反应。Cygwin以管理员权限启动且正常运行。主机192.168.1.1已启动,我可以远程桌面连接它:

当我尝试:

$ ssh -vvv pi@192.168.1.1
OpenSSH_8.3p1, OpenSSL 1.1.1f  31 Mar 2020

我只能得到一行内容,即使等了几个小时也没有其他的输出。我已经重新安装了cygwin、openssh,并删除了.ssh文件夹,但是仍然没有成功。

当我输入以下命令时:

ssh-keygen -b 4096

什么都没有发生。 对我来说,似乎用户交互不起作用。 有什么想法吗?

谢谢

更新:我尝试了:

  1. 为所有用户重新安装cygwin,单个用户,以管理员权限运行安装程序,未成功。
  2. 使用绝对路径启动ssh和ssh-keygen,以确保不使用Windows OpenSSH。
  3. 检查.ssh文件夹的文件夹权限。

这是我的strace:Pastebin

更新2:我发现以下内容:如果我经常运行ssh-keygen或ssh(!),它有时会起作用!现在这真奇怪。


嗨,菲利普,谢谢。我得到了 $ ls -l $HOME/.ssh total 6 -rw------- 1 Marc None 2610 Dec 31 09:21 id_rsa -rw-r--r-- 1 Marc None 574 Dec 31 09:21 id_rsa.pub -rw-r--r-- 1 Marc None 173 Dec 31 09:24 known_hosts - Marc
你可以运行 strace ssh -vvv pi@192.168.1.1 命令来查看它在哪个系统调用中被卡住了。 - Philippe
谢谢,这会生成相当多的输出pastebin - Marc
1
在strace结果中,我看到 C:\Program Files (x86)\Citrix\ICA Client\epclient64.dll。Citrix与ssh有什么关系? - Philippe
1
好的,菲利普,那是正确的提示!我卸载了 Citrix,现在它可以正常工作了。如果安装了 Citrix,它只能正常工作 5 次中的 1 次。 - Marc
显示剩余7条评论
3个回答

2

Philippe 的想法是正确的。基本上,Citrix Workspace应用程序会导致SSH Cygwin崩溃。当我卸载Citrix后,一切都正常了!


非常感谢!我甚至观察到现有的和全新的Cygwin安装之间存在差异,前者根本不会反应,但后者在启动后ssh-*命令只能工作一次。多么奇怪 :/ - resi

0

我发现这是Citrix的epclient64.dll中的一个错误导致的:它会在我的内部网络中使我的ssh崩溃。卸载Citrix后,它将正常工作。以下是日志

Pastebin log of strace
https://pastebin.com/FJfUj3C1[Pastebin][1]

没有应用程序保护时,它可以正常工作。所以总结一下:

  • 使用应用程序保护时,ssh会一次又一次地崩溃,甚至无法正常启动
  • 没有Citrix时,ssh可以正常工作
  • 没有应用程序保护的Citrix时,ssh可以正常工作

--> epclient64.dll与ssh不兼容

我们谈论的是2021年1月最新版本的ssh和Citrix。


0

我发现卸载 Citrix 后没有任何影响。

我在 Windows Explorer 中打开了 ssh.exe 所在的文件夹。右键单击此可执行文件,导航到兼容性选项卡,选择“Windows 8”下的运行此程序的兼容性模式。然后,我至少从命令行得到了一个响应,但它永远不会连接到我输入的主机。它会卡住,我必须从 Taskmgr 中结束它。

当我运行 whereis ssh 时,在 Cygwin 中有 2 个版本,一个在 /usr/bin,另一个在 /cygdrive/c/WINDOWS/System32/OpenSSH。所以我做的是将 /usr/bin 版本移动到备份文件中,并在 cygwin shell 中创建一个链接到 /cygdrive/c/WINDOWS/System32/OpenSSH/ssh.exe。现在它的工作方式就像以前一样。

顺便说一句,我的 OpenSSH 版本是“OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5”,运行在 Windows 10 上。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接