Ssh

windows 10 ssh 代理命令:“posix_spawn:沒有這樣的文件或目錄”

  • February 19, 2021

我使用的是 Windows10,我需要使用 jumphost 來訪問我的 Linux 伺服器。因此,我已經.ssh\config像這樣配置了:

Host jumphost
HostName jumphost.server.local

Host server*.server.local
ProxyCommand  ssh jumphost netcat -w 120 %h %p

但是當我執行ssh server01.server.local -v(dash-v for verbose)時,我收到以下錯誤:

OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
debug1: Reading configuration data C:\\Users\\admin/.ssh/config
debug1: C:\\Users\\admin/ssh/config line 70: Applying options for server*.server.local
debug1: Executing proxy command: exec ssh jumphost netcat -w 120 server01.server.local 22
CreateProcessW failed error:2
posix_spawn: No such file or directory

根據這個錯誤,修復是使用完整路徑。所以這是正確的行.ssh/config

 ProxyCommand  C:\Windows\System32\OpenSSH\ssh.exe jumphost netcat -w 120 %h %p

如需進一步開發,請參閱此問題:https ://github.com/microsoft/vscode-remote-release/issues/18

TL;博士

應該呼叫帶有副檔名的ProxyCommandssh .exe,例如:

ProxyCommand ssh.exe -q -W %h:%p yyy

漫長的(?)故事

跑步ssh -vvv XXX節目:

debug3: spawning "C:\\Windows\\System32\\OpenSSH\\ssh -q -W XXX:22 YYY"
CreateProcessW failed error:2
posix_spawn: No such file or directory

根據CreateProcessMSDN 上的文件,我想是以某種方式posix_spawn呼叫參數必須是精確和絕對路徑。指定後綴後,似乎是固定的。CreateProcess``lpApplicationName``.exe

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