Я использую 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
(тире-v для подробностей), я получаю следующее ошибка:
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
Так как netcat не доступен в системе по умолчанию, следующие две записи в .ssh/config добьются цели (предполагающий, что локальное имя пользователя и удаленное имя пользователя отличны).
login.bar
: система для входа в систему
jump.bar
: jumphost
<username>
: имя удаленного пользователя на login.bar и jump.bar (если они - отличный < jumpuser> @jump.bar необходим). Если Вы опускаете < username> перед jump.bar взято локальное имя пользователя.
a)
Host foo
User <username>
HostName login.bar
ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -q -X -W %h:%p <username>@jump.bar
b)
Host foo
User <username>
HostName login.bar
ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -Y <username>@jump.bar -W %h:%p
В обоих случаях входят в login.bar с: ssh foo
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
Согласно CreateProcess
документ о MSDN, я предполагаю posix_spawn
, звонит CreateProcess
способом, что lpApplicationName
аргументом должен быть точный тракт и полный путь. После определения эти .exe
суффикс, это, кажется, фиксируется.
Я получил ту же ошибку, но это было из-за набора переменной среды ДИСПЛЕЯ к некоторому значению. После того как Вы сбрасываете ту переменную среды, ошибка ушла.