Как я могу использовать SSH с прокси SOCKS 5?
У меня есть прокси SOCKS5, настроенный через PuTTY с портом 7777, настроенным как динамический порт. Я могу использовать firefox/filezilla/etc, настроив их на использование прокси-сервера SOCKS с localhost
и порт 7777
, Но я не могу понять, как подключиться через ssh (через Cygwin) к удаленному серверу, используя динамический порт. Это возможно?
Я пытался использовать ProxyCommand
с помощью следующего метода.
Создайте
~/.ssh/config
со следующей строкой:ProxyCommand /usr/bin/nc -X connect -x 127.0.0.1:7777 %h %p
- Запустите ssh -p22 user@remotehost
Я получаю сообщение ssh_exchange_identification: Connection closed by remote host
6 ответов
Вы используете "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
Я надеюсь, что это помогает.
ssh -o ProxyCommand='nc --proxy-type socks4 --proxy 127.0.0.1:9050 %h %p' user@host
fc19 x86_64, Ncat: версия 6.25
tsocks ( http://tsocks.sourceforge.net/) - это хорошая оболочка, которая использует LD_PRELOAD, чтобы любая программа прозрачно использовала прокси SOCKS:
tsocks ssh example.com
Просто работает, не забудьте настроить IP прокси SOCKS в /etc/tsocks.conf
Следующая команда сделает просто использовать nc:
ssh examplehost.com -o "ProxyCommand=nc --proxy localhost:7000 %h %p"
По умолчанию используется HTTP-прокси, HTTP-прокси работает на порту 7000.
ssh способен понятьALL_PROXY
переменная среды, так что, видимо, что-то вроде этого
ALL_PROXY=socks5://127.0.0.1:9150 ssh example.com
помогает, по крайней мере, для меня.
Чтобы было проще, вы можете вставить их~/.ssh/config
host = example.com
ProxyCommand nc -X 5 -x 127.0.0.1:9150 %h %p
Любая команда ssh в терминале теперь будет проходить через этот прокси.