Я невероятно расстроен.Я просто хочу запустить команду sudo для удаленного SSH-соединения и выполнить операции с результатами, которые я получаю локально в своем скрипте.Я осматривался около часа и не видел ничего, связанного с этой проблемой.
Когда я делаю:
#!/usr/bin/env bash
OUT=$(ssh username@host "command" 2>&1 )
echo $OUT
Затем я получаю ожидаемый результат в OUT.
Теперь, когда я пытаюсь выполнить команду sudo:
#!/usr/bin/env bash
OUT=$(ssh username@host "sudo command" 2>&1 )
echo $OUT
, я получаю "sudo: tty отсутствует и не задана программа askpass".Справедливо, я буду использовать ssh -t.
#!/usr/bin/env bash
OUT=$(ssh -t username@host "sudo command" 2>&1 )
echo $OUT
Тогда ничего не происходит.Он зависает, никогда не спрашивая пароль sudo в моем терминале.Обратите внимание, что это происходит независимо от того, отправляю ли я команду sudo или нет, ssh -t зависает, точка.
Хорошо, давайте пока забудем переменную и просто введем команду ssh -t.
#!/usr/bin/env bash
ssh -t username@host "sudo command" 2>&1
Тогда, ну, это работает без проблем.
Так что проблема в том, что ssh -t внутри переменной просто ничего не делает, но я не могу понять, почему или как заставить это работатьдля жизни меня.Кто-нибудь с предложением?