29

У меня есть прокси SOCKS5, настроенный через PuTTY с портом 7777, настроенным как динамический порт. Я могу использовать firefox/filezilla/etc, настроив их на использование прокси-сервера SOCKS с localhost и портом 7777 . Но я не могу понять, как подключиться через ssh (через Cygwin) к удаленному серверу, используя динамический порт. Это возможно?

Я пытался использовать ProxyCommand помощью следующего метода.

  1. Создайте ~/.ssh/config со следующей строкой:

    ProxyCommand /usr/bin/nc -X connect -x 127.0.0.1:7777 %h %p
    
  2. Запустите ssh -p22 user @ remotehost

Я получаю сообщение ssh_exchange_identification: Connection closed by remote host

4 ответа4

28

Вы используете «connect» для HTTPS в качестве прокси-версии, это от man nc:

-X proxy_version Запрашивает, чтобы nc использовал указанный протокол при обращении к прокси-серверу. Поддерживаются следующие протоколы: «4» (SOCKS v.4), «5» (SOCKS v.5) и «connect» (HTTPS-прокси). Если протокол не указан, используется SOCKS версии 5.

Таким образом, вы должны использовать следующее, чтобы использовать SOCKS 5:

ProxyCommand /usr/bin/nc -X 5 -x 127.0.0.1:7777 %h %p

Или просто:

ProxyCommand /usr/bin/nc -x 127.0.0.1:7777 %h %p

Я надеюсь, что это помогает.

10
ssh -o ProxyCommand='nc --proxy-type socks4 --proxy 127.0.0.1:9050 %h %p' user@host

fc19 x86_64, Ncat: версия 6.25

3

tsocks (http://tsocks.sourceforge.net/) - это хорошая оболочка, которая использует LD_PRELOAD, чтобы любая программа прозрачно использовала прокси SOCKS:

tsocks ssh example.com

Просто работает, не забудьте настроить IP прокси SOCKS в /etc/tsocks.conf

1

Следующая команда сделает просто использовать nc.

ssh examplehost.com -o "ProxyCommand=nc --proxy localhost:7000 %h %p"

по умолчанию используется http-прокси, на порту 7000 работает прокси-сервер http.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .