Я написал следующий скрипт expect, чтобы автоматизировать вход по ssh на удаленную машину Linux И запускаю команду "cat /etc/APP_VERSION.txt file"
Sometime I not asked from ssh command about-
"Are you sure you want to continue connecting (yes/no)?"
Так вот, в этом случае первый expect все еще ждет строки "(yes/no)?" -:(
И не переходит ко второму ожиданию - "password:" ?
Как это решить? ,
То есть если строка "Вы уверены, что хотите продолжить соединение (да/нет)?" не появляется из ssh
Тогда надо перейти к следующему expect "password:" , но как это сделать?
remark1 - в случае если вопрос "Are you sure you want to continue connecting (yes/no)?" появляется, то скрипт expect работает нормально без каких-либо проблем. .
remark2 - я не могу использовать положительное значение таймаута (как таймаут 10), потому что у самого ssh есть задержка
. . . .
Мой скрипт expect: (этот expect является частью моего скрипта 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)?