Cygwin: ssh and ssh-keygen do not react at all

Viewed 309

I've got a strange behaviour of ssh and ssh-keygen: they do not react at all. Cygwin is started with admin rights and works normally. The host 192.168.1.1 is up and I can remote desktop to it:

When I try:

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

I get only one line but nothing else, even if I wait hours. I reinstalled cygwin, openssh, I deleted the .ssh folders, no success.

When I enter

ssh-keygen -b 4096

nothing happens at all. For me it seems that the user interaction does not work. Any ideas?

Thanks

Update: I tried:

  1. reinstalling cygin for all users, one user, running the installation with admin rights, without. No success.
  2. Started ssh and ssh-keygen with an absolute path to make sure that the windows openssh is not used
  3. Checked the folder permissions on .ssh

Here is my strace: Pastebin

Update 2: I found the following: if I run ssh-keygen or ssh often enough (!) it will sometimes work! Now that's weird.

3 Answers

Philippe had the right idea. Basically the citrix workspace app is crashing ssh cygwin. When I uninstalled citrix everything worked fine!

I found that it is down to a bug in epclient64.dll of citrix: it crashes my ssh in my internal network. After uninstallation of citrix it would work normally. Here is the log

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

Without the app protection it works fine. So to sum up:

  • with app protection ssh crashes again and again, it does not even start properly
  • without citrix ssh works fine
  • citrix without app protection ssh works fine

--> epclient64.dll does not work with ssh

And we are talking about the most recent versions of ssh & citrix as of Jan 2021.

I found that when I uninstalled citrix, it had no effect.

I opened up the folder in Windows Explorer where the ssh.exe resides. I right clicked on this executable, navigated to Compatibility tab, selected Run this program in compatibility mode for "Windows 8". Then I at least got a response from the command line, but it would never connect to the host I entered. It would get stuck and I would have to kill it from taskmgr.

When I ran whereis ssh, I had 2 versions in Cygwin, one in /usr/bin and one in /cygdrive/c/WINDOWS/System32/OpenSSH. So what I did was to move the /usr/bin version to a backup file and create a link in a cygwin shell to /cygdrive/c/WINDOWS/System32/OpenSSH/ssh.exe. Now it works like it used to.

By the way my OpenSSH version is "OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5" running on Windows 10.

Related