SSH + Sudo + Ожидают в сценарии Bash: Команда выполнения с sudo в удаленной машине

Имел ту же проблему с urxvt. Найденный фиксацией здесь:

в.Xdefaults:

urxvt*termName: rxvt-256color 

в .screenrc

term rxvt-256color

3
03.07.2012, 19:43
2 ответа

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

Иначе Вы могли попробовать эту измененную версию (но обратите внимание, я не поощряю этот стиль кодирования!)

function _remoteInstallation(){
    local retval=1
    local debToInstall=$(basename "$1")
    local remoteMachine="$2"
    spawned=$(expect -d -c "
          set timeout 1800
          spawn \"/usr/bin/ssh -t borrajax@$remoteMachine /usr/bin/sudo /usr/bin/dpkg -i /home/borrajax/Documents/$debToInstall\"
          expect {
                \"Are you sure you want to continue connecting\" { send \"yes\r\"; exp_continue }
                \"password\" { send \"myPassword\r\";  exp_continue }
                \"[sudo] password\" { send \"myPassword\r\";  exp_continue }
                default { exit 1 }
          }
    " )
    retval=$?
    return $retval
}
3
27.01.2020, 21:14
  • 1
    Почти... Оказывается, что скобки в \"[sudo] \" опция портили его. Я наконец получил его работающий со сходством с области икры: породите/usr/bin/ssh-t zignage@ $remoteMachine \"/usr/bin/sudo/usr/bin/dpkg-i/home/zignage/Documents/$debToInstall \" и иссушение фигурных скобок в sudo (\"\[sudo \] \") –  BorrajaX 03.07.2012, 21:03

Почему люди всегда используют это ужасное expect материал с ssh? Используйте ssh ключи, и Вы сделаны (чтение на шифровании с открытым ключом для теории, просто используйте ssh-copy-id remotemachine раз и навсегда для практики). Затем использование так же просто как

ssh remote-machine "remote-shell-command" > local-redirection-of-command-output

Как только Вы не должны манипулировать между 3 уровнями заключения в кавычки, Вы естественно запишете корректные команды.

3
27.01.2020, 21:14
  • 1
    я боюсь, что это не опция в этом случае. Я не могу установить свои ключи в удаленных машинах. –  BorrajaX 03.07.2012, 19:52

Теги

Похожие вопросы