У меня есть локальный сценарий оболочки. Теперь, я хочу запустить этот локальный скрипт в удаленной машине. Конечно, я могу использовать ssh
, но поскольку это (локальный сценарий оболочки) должно быть похожим на автоматизированный, это не должно просить пароль вводить вручную. Таким образом, я использовал, ожидают устранять ту проблему, так, чтобы, если я запускаю скрипт она, привычка спросила пароль. И мой сценарий похож ниже.
#!/usr/bin/expect
spawn ssh -o GSSAPIAuthentication=no root@10.3.0.39 'bash -s' < /path/to/localscript
expect -timeout 7 "*(yes/no)?" { send "yes\r";exp_continue }
expect -timeout 3 "*d: "
send "qbcrootpass\n"
interact
Но это не работает. Отметьте в моем сценарии, я не хочу использовать аутентификацию с открытым ключом.
Помогите мне выполниться, локальный сценарий в удаленном использовании использования машины ожидают.
То перенаправление обрабатывается Вашей оболочкой в командной строке. Ожидайте не поймет, как сделать это. Это должно работать (непротестированное):
set fh [open /path/to/localscript r]
set contents [read $fh]
close $fh
spawn ssh ... "bash -c '$contents'"