Дженкинс Может ли выполнить сценарий оболочки на удаленном хосте, используя ssh с поддержкой socks4 proxy? - PullRequest
0 голосов
/ 03 июля 2018

По какой-то причине в компании необходимо автоматизировать пару команд на сервере, который находится за прокси-сервером socks. До сих пор мне это удавалось в конвейере (что для меня довольно ново) таким образом:

sh 'ssh -vvv -t -o StrictHostKeyChecking = нет -o ProxyCommand = "nc -x elki-palki.socks4.chot-b-ego.com:1080% h% p" Петя .properdikin @ xxx.xxx.xxx.xxx << - EOF "pwd \ n /tmp/jenkins/01.sh\n pwd \ n ....." EOF '</p>

Есть ли способ настроить SSH-сайт с прокси SOCKS4 для использования обычных рабочих мест Freestyle? введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 12 июля 2018

Решено, просто отказаться от использования сценария оболочки на удаленном хосте с использованием ssh. Вместо этого используйте обычную исполняемую оболочку. Затем вам нужно будет создать ssh_config в ~ / .ssh / config или глобально в / etc / ssh / ssh_config и вставить туда информацию с помощью Socks4 (или любого другого прокси-сервера):

Host xxx.xxx.xxx.xxx
    ProxyCommand='nc -x elki-palki.socks.chob-ego.com:1080 %h %p'
    User petya.properdikin
    ForwardAgent yes
    Port 22

Тогда это должно работать (предполагается, что ssh-ключи настроены правильно)

0 голосов
/ 03 июля 2018

Просто ssh в конвейере хорошо объяснено в этот вопрос

Для прокси-носков все сложнее. Основываясь на этой статье и Java-документах , вам придется запустить Jenkins с некоторыми дополнительными флагами, вот документы:

SOCKS Это другой тип прокси. Это позволяет для более низкого уровня типа туннелирование, так как оно работает на уровне TCP. По сути, на Яве (тм) установка платформы прокси-сервера SOCKS приведет ко всем TCP подключения, чтобы пройти через этот прокси, если другие прокси не указано. Если SOCKS поддерживается реализацией Java SE, будут использованы следующие свойства:

socksProxyHost (default: <none>)
The hostname, or address, of the proxy server.

socksProxyPort (default: 1080)
The port number of the proxy server.

socksProxyVersion (default: 5)
The version of the SOCKS protocol supported by the server. The default is 5 indicating SOCKS V5, alternatively 4 can be specified for

НОСКИ V4. Установка свойства в значения, отличные от этих приводит к неуточненное поведение.

java.net.socks.username (default: <none>)
Username to use if the SOCKSv5 server asks for authentication and no java.net.Authenticator instance was found.

java.net.socks.password (default: <none>)
Password to use if the SOCKSv5 server asks for authentication and no java.net.Authenticator instance was found.

Скорее всего, это будет выглядеть

java -DsocksProxyHost=some.proxy.host -DsocksProxyPort=1234 -DsocksProxyVersion=4 -jar jenkins.war

В зависимости от того, как вы на самом деле начинаете свой Дженкинс и т. Д.

...