Я пытаюсь запустить вложенный ssh -t -t, но он не предоставит мне переменные окружения при работе с cat
и echo
.
#!/bin/bash
pass="password\n"
bla="cat <(echo -e '$pass') - | sudo -S su -"
ssh -t -t -t -t jumpserver "ssh -t -t -t -t server \"$bla\" "
Я получаю вывод без учета любых переменных. (например, PS1 не отображается, но команды работают нормально). Проблема связана с cat <(echo -e '$pass') -
, но это был способ сохранить echo
живым после предоставления пароля для sudo
.
Как я могу достичь этого и получить переменные среды для получения правильного вывода?
Спасибо.
Спасибо за ответ! 1. Несколько -t были добавлены в качестве руководства ssh, в котором указано «Множество -t options force tty allocation». 2. echo proc умирает и убивает sudo su - вот почему я использовал эту конструкцию, 3. мне нужно иметь интерактивную оболочку как root, поэтому sudo! = Sudo su – Raz3k
'sudo -i' - это то, что вам нужно. Если вы закрываете stdin для 'sudo', он, очевидно, заканчивается. – Jakuje
просто попробовал, и без конструкции 'cat' он убивает соединение, спасибо. – Raz3k