Ssh

ssh on cygwin (win10): read_passphrase: can’t open /dev/tty:

  • May 6, 2019

在多年穩定登錄後,最近在 windows 10 下的 cygwin 上執行 ssh 開始失敗。來自 Xwindows 的薄荷糖下 ssh 的相關輸出:

%  ssh -tt -vvv <user@host>
debug3: Failed to open file:C:\\ProgramData\\ssh/ssh_known_hosts error:2
debug3: Failed to open file:C:\\ProgramData\\ssh/ssh_known_hosts2 error:2
debug3: failed to open file:/dev/tty error:3
debug1: read_passphrase: can't open /dev/tty: No such file or directory
debug3: spawning /usr/X11R6/bin/ssh-askpass
CreateProcessW failed error:2
ssh_askpass: posix_spawn: No such file or directory
Host key verification failed.

特殊文件 /dev/tty 在那裡:

% ls -la /dev/tty
crw-rw-rw- 1 jpmattia None 5, 0 May 22 15:04 /dev/tty

我更新了 Cygwin 以確保所有二進製文件都是最新的。本週早些時候,Windows 也進行了自我更新。

我對可能發生的事情感到有些困惑。線索欣然接受。

記錄我的解決方案以防其他人遇到問題:似乎在 2018 年春季更新中引入了 Windows 版本的 OpenSSH,並且正在呼叫它而不是 Cygwin 的 ssh。(參見例如https://www.zdnet.com/article/openssh-arrives-in-windows-10-spring-update/

% which ssh
/cygdrive/c/WINDOWS/System32/OpenSSH/ssh

ssh突然出現問題的原因是cygwin PATH在/usr/bin/之前有/cygdrive/c/WINDOWS/System32。或者至少,我的做到了。

所以這個問題可以通過顯式呼叫 /usr/bin/ssh 來解決。(重新排序 PATH 也是一種可能的解決方案,但不適用於我的環境。)

引用自:https://serverfault.com/questions/913304