Вариант использования:
1> ssh в машину-> использование ожидать автоматизации сценария
2> Однажды ssh'ed в машину запускает скрипт от моей локальной машины на удаленную машину
В настоящее время я делаю следующий подход:
ssh admin@128.34.56.127 < ./s4.sh
Pseudo-terminal will not be allocated because stdin is not a terminal.
admin@13.126.76.184's password: <Provide password>
<Script executes without any errors>
В вышеупомянутом сценарии я должен обеспечить свой пароль вручную, который не является случаем надлежащего использования для автоматизации.
Так будет использовать ожидать опцию, которая должна помочь автоматизировать процедуру входа в систему.
Пример кода:
#!/usr/bin/expect -f
spawn ssh admin@128.34.56.127
expect "password"
send "password\r"
Этот код помогает автоматизировать вход в систему, но в ожидать коде..., как я дам команду для инициирования другого сценария из моего текущего сценария?
По-моему, весь подход мог быть улучшен:
Сначала можно использовать Основанный на ключе Вход в систему SSH для безопасной аутентификации себя без пароля - просто оставляют пароль пустым, когда генерируют ключ.
Затем можно создать ~/.ssh/config
файл для упрощения процесса создания соединения SSH.
Затем сценарий автоматизации мог выполнить просто эти шаги:
использовать scp
(или rsync
) скопировать Ваш сценарий в удаленную машину;
запустите скрипт удаленно и затем удалите его.
sshfs
и затем просто запущенный скрипт удаленно.