Я пишу следующий ожидаемый скрипт для автоматизации входа по ssh на удаленную Linux-машину.
И выполните команду "cat /etc/APP_VERSION.txt file"
Иногда я не спрашивал команду ssh о -
"Are you sure you want to continue connecting (yes/no)?"
Так что в этом случае первое ожидание все еще ожидает строку "(да / нет)?" -: (
И не переходите ко второму ожиданию - «пароль:»?
Как решить эту проблему?
Я имею в виду, если строка "Вы уверены, что хотите продолжить соединение (да / нет)?"
Не появляется из SSH
Тогда мы должны перейти к следующему ожидаемому «паролю», но как это сделать?
замечание1 - в случае вопроса «Вы уверены, что хотите продолжить соединение (да / нет)?» Появляется тогда ожидаемый скрипт нормально работает без проблем
.
Примечание2 - Я не могу использовать положительное значение тайм-аута (как тайм-аут 10), потому что сам ssh имеет задержку
.
,
,
.
Мой сценарий ожидания: (это ожидание является частью моего сценария ksh)
.
.
.
APP_MACHINE=172.12.6.190
set timeout -1
spawn ssh $APP_MACHINE
expect {
"(Are you sure you want to continue connecting yes/no)?"
{ send "yes\r" }
}
expect password: {send PASS123\r}
expect > {send "cat /etc/APP_VERSION.txt\r"}
expect > {send exit\r}
expect eof
.
.
.
.
,
,
,
.
пример ssh с моей машины linux
ssh APP_MACHINE
The authenticity of host 'APP_MACHINE (172.12.6.190 )' can't be established.
RSA key fingerprint is 1e:8a:3d:b3:e2:8c:f6:d6:1b:16:65:64:23:95:19:7b.
Are you sure you want to continue connecting (yes/no)?