Я пытаюсь подключиться к SSH-серверу с ПК с Windows через корпоративный HTTP-прокси.
Уловка работает под Debian с использованием клиента OpenSSH с ncat
из пакета nmap, но он не работает под Windows с Plink 0.70 + Ncat 7.70 (https://nmap.org). Putty тоже отлично работает, хотя для меня было бы лучше использовать чистый plink.
Плинк имеет -proxycmd
вариант, который похож на ProxyCommand
вариант в OpenSSH. Однако это не работает должным образом (SSH-сервер работает на порту 443):
plink.exe -C -ssh -P 443 -i my_pvt_key.ppk -proxycmd "ncat --verbose --proxy-type http --proxy 192.168.101.200:3128 %host %port" -sshlog sshlog.txt root@192.0.2.123
Команда немедленно возвращает «ФАТАЛЬНАЯ ОШИБКА: сервер неожиданно закрыл сетевое соединение».
Журнал шпатлевки:
=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2018.07.19 07:38:28 =~=~=~=~=~=~=~=~=~=~=~=
Event Log: Writing new session log (SSH packets mode) to file: sshlog.txt
Event Log: Starting local proxy command: ncat --verbose --proxy-type http --proxy 192.168.101.200:3128 port
Event Log: We claim version: SSH-2.0-PuTTY_Release_0.70
Event Log: Server unexpectedly closed network connection
Третья строка журнала сбивает с толку. В конце команды есть слово «порт», и его следовало заменить фактическим портом. Хост 192.0.2.123
вообще не отображается.
Команда ncat --verbose --proxy-type http --proxy 192.168.101.200:3128 192.0.2.123 443
сам вроде нормально работает. Таким образом, я полагаю, проблема в том, что Plink неправильно разбирает аргументы в команде ncat. Я, наверное, ошибаюсь.
Есть идеи, как это исправить?
В Putty в Configuration-> Connection-> Proxy вы можете настроить HTTP-прокси напрямую, не используя ncat
.
В plink
, вы можете обратиться к конфигурации Putty. В справочном тексте говорится
"host" также может быть именем сохраненной сессии PuTTY.
Так что просто позвони plink
с сохраненной конфигурацией.
Спасибо за вопрос, я добился успеха в Window 10 1903 через открытый ssh, ниже моя команда:
ssh root@domain.com -o "ProxyCommand C:\Program Files (x86)\Nmap\ncat.exe --verbose --proxy-type http --proxy 127.0.0.1:10801 %h %p" -v
С plink: Release 0.71 (64-разрядная версия) команда OP работает нормально, но cmd покажет нераспознанную диаграмму без цвета. Лучше использовать открытый ssh в Windows 10?
plink.exe -C -ssh -P 27158 -i C:\Users\xxx\.ssh\test.ppk -proxycmd "ncat --verbose --proxy-type http --proxy 127.0.0.1:10801 %host %port" root@xxx.xxx-sshlog sshlog.txt