sshpass с прокси-командой возвращается без запуска - PullRequest
0 голосов
/ 09 мая 2018

В наших средах у нас есть несколько серверов в производстве. Каждый раз, когда я хочу что-то искать, это может быть на 1 из 4 разных серверов. Я создаю сценарий для автоматизации этого поиска, чтобы я непосредственно знал, какой сервер задействован.

Я подключаюсь через Jumphost.

Пока что следующая команда работает нормально:

$ ssh -oProxyCommand="ssh -W %h:%p user@jumphost" user@server "ls"

Теперь, поскольку я должен выполнить это несколько раз, я ищу способ использовать пароль только один раз.

И для хоста прыжка, и для сервера требуется один и тот же пароль, а открытые ключи не являются опцией (не разрешено, я буквально не могу этого сделать).

Я читал о sshpass для этого и пытаюсь это:

$ sshpass -p password ssh -oProxyCommand="ssh -W %h:%p user@jumphost" user@server "ls"

(я знаю, что -p небезопасен и будет использовать -e из -f, как только я выполню этот шаг).

Когда я делаю это, я могу войти в обе системы, но команда возвращается, прежде чем я вижу результат ls. Я пытался использовать параметр -t для ssh без какого-либо успеха.

Я также попробовал опцию -J из ssh с теми же результатами (команда возвращает результат без каких-либо результатов).

$ sshpass -p password ssh -J user@jumphost user@server "ls"

Есть предложения?

РЕДАКТИРОВАТЬ:

Решением было использовать sshpass дважды:

$ sshpass -p password ssh -oProxyCommand="sshpass -p ssh -W %h:%p user@jumphost" user@server "ls"

1 Ответ

0 голосов
/ 09 мая 2018

Попробуйте запустить ssh в подробном режиме:

ssh -vvv -oProxyCommand="ssh -W %h:%p user@jumphost" user@server "ls"

Я уверен, что это покажет что-то интересное. Крюк, с которым вы можете понять это.

...