Как автоматически вводить ввод для подсказки при запуске скрипта linux ksh?

В настоящее время у меня есть скрипт, который подключается по ssh к другому серверу и запускает команду. Когда команда ssh запускается, в подсказках, хочу ли я подключиться (да/нет) и для пароля. Есть ли способ, чтобы при вызове ssh я мог автоматически вводить ввод для подсказки?

Кроме того, я понимаю, что использование открытого ключа с командой ssh ​​решит эту проблему, но у меня нет разрешения на создание открытого ключа.


person Matt Pascoe    schedule 22.02.2010    source источник


Ответы (2)


Дон Либес создал Expect именно для того, чтобы вы могли программировать инструменты, которые должны взаимодействовать с подсказками. Я даже использовал его с модемами! Это очень старый инструмент, но очень эффективный, и он заслуживает более широкой известности.

Единственным недостатком является то, что он использует Tcl, который не является моим любимым языком программирования. Но чтобы изучить Tcl в достаточной степени, чтобы создавать простые сценарии ожидания, вам потребуется не более часа. И Expect — действительно идеальный инструмент для этой работы.

person Norman Ramsey    schedule 23.02.2010
comment
Многие языки имеют порты Expect, в частности, python приходит на ум с pexpect. - person prestomation; 23.02.2010
comment
Хотя это может быть не всеми любимый язык, он идеально подходит для такого типа работы. Используйте правильный инструмент для работы, и в этом случае ожидание, как правило, превосходит любой другой инструмент. Он очень зрелый, очень крепкий, очень стабильный. - person Bryan Oakley; 23.02.2010

Вы можете загрузить и установить внешние инструменты? если вы можете попробовать, попробуйте sshpass. Я не пробовал, но вы можете попробовать.

person ghostdog74    schedule 23.02.2010