2016-11-12 6 views
0

Итак, у меня есть сценарий оболочки, который sshs в машину, а затем, используя ожидание, передает пароль через expect, а затем запускает скрипт matlab. Проблема в том, что я хотел бы сделать это для целого ряда машин в сети, и если это тот, который я не подключил, прежде чем спрашивать у меня пароль, он говорит мне, что он не может аутентифицировать машину, как спрашивает меня, если я хотите подключиться и ожидает ответа yes \ no.shell scripting «ожидать» от различных ответов от ssh

Я хочу, чтобы мой сценарий оболочки мог обрабатывать ситуации, когда он просто запрашивает пароль и где ему также удается справиться с да \ нет. Я не знаю, как это сделать с «ожиданием», когда он не получает то, что он ожидает, просто зависает.

Также по каким-то причинам мой дополнительный код для обработки ответа «да» не работает при тестировании его на машинах. Я знаю, что не вошел в систему. Это формат, с которым они отвечают.

«Невозможно установить подлинность хозяина« семь (128.40.41.89) ». Отпечаток ключа RSA: d6: 9d: d0: 61: 5f: bb: 36: 9a: 74: 2c: f6: b9: a7: 79: 03: 98. Вы действительно хотите продолжить подключение (да/нет)? "

И это мой код, который по какой-то причине не работает с моим добавлением, но отлично работает с битом «assword:», который я нашел при обмене стеками. Я вижу терминал, и он спрашивает yes \ no question, но тогда мой скрипт не отвечает. Я предполагаю, что каким-то образом я предполагаю, что ошибаюсь, но я понятия не имею, как это сделать.

#!/bin/sh 
ssh seven 
expect "(yes\no)? " 
send "yes\r" 
expect "assword:" 
send "my password goes here\r" 

matlab -nodisplay -nojvm -nosplash -nodesktop -r \ 
"try, run('\path\matlab_script.m'), catch me, fprintf('%s/%s \n',me.identifier,me.message), end, exit" 

ответ

1

Одним из возможных обходной путь работает SSH с StrictHostKeyChecking не установлен на нет:

ssh seven -o StrictHostKeyChecking=no 

Это autimatically добавить неизвестные ключи хоста в список известных хостов.

+0

@generic, есть ожидание решения этого (поиск «да/нет exp_continue»), но это лучший способ сделать это. –

+0

Спасибо Олег, очень благодати! И спасибо, Гленн, может быть полезен для будущих проблем. –