В наших средах у нас есть несколько серверов в производстве. Каждый раз, когда я хочу что-то искать, это может быть на 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"