Назад | Перейти на главную страницу

Подключитесь к SSH-серверу через HTTP-прокси с помощью plink и netcat

Я пытаюсь подключиться к 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