2016-02-23 3 views
1

Приветствие Все,Команды SSH от сценария к удаленному серверу не работают

У меня есть следующий запрос и будет признателен за любую помощь по этому вопросу. Спасибо.

Сценарий:

Мой локальный сервер (сервер-А) соединен с одним удаленным сервером (сервером-B) .Server-B подключен к 10 других удаленных серверов (сервер-С ... Сервер-L). Сервер-A напрямую не подключен (Server-C ... Server-L), его подключение только через сервер-B.

мне удалось сделать SSH ключ спаривание между:

Server-A <----> Server-B 
Server-B <----> Server-C....Server-L 

Так что теперь я могу войти в сервер-C от сервера-A с помощью следующей команды:

с сервера-A:

ssh [email protected](IP-Server-B) -t ssh [email protected](IP-Server-C) 
ssh -t [email protected](IP-Server-B) -t scp -oStrictHostKeyChecking=no test.file [email protected](IP-Server-C):/home/user-C 

Вот мой фактический сценарий: (Запуск от сервера-A)

while read line 
do 

scp -oStrictHostKeyChecking=no test.file [email protected](IP-Server-B):/home/user-B 
ssh -t [email protected](IP-Server-B) -t scp -oStrictHostKeyChecking=no test.file [email protected]$line:/home/mtc 
ssh -t [email protected](IP-Server-B) -t ssh -t -tqn [email protected]$line sh /home/user-c/test.file 
ssh -t [email protected](IP-Server-B) -t scp [email protected]$line:/home/user-c/junk.txt /home/user-B 
ssh -t [email protected](IP-Server-B) -t ssh [email protected]$line rm -rf /home/user-c/junk.txt 
scp [email protected](IP-Server-B):/home/user-B/junk.txt . 
mv junk.txt junk.txt_$line 

done < LabIpList 

Вот список IP-адресов серверов Server-c ... Server-L.

cat LabIpList 


1.2.3.4 
2.3.4.5 
3.4.5.6 
4.5.6.7 
5.6.7.8 
6.7.8.9 
7.8.9.10 
.... 
..... 

Запрос:

Если я выше команды в командной строке, то они работают безупречно, однако если я положил их на сценарий, то они терпят неудачу. Из-за двух причин:

  1. tcgetattr: недопустимом IOCTL для устройства
  2. псевдо-терминал не будет выделено
  3. Как SSH-ключей в последнее время обмениваются, так что пользователь должен вручную ввести да, чтобы добавить их к know_hosts.
+0

И чем вопрос? Вы читали о 'ssh_config', где вы можете настроить все, что навороты вы только что закодировали в ваш скрипт? – Jakuje

+0

Как пройти, ручная аутентификация для новых ключей ssh ​​+ запустить SSH-команды через скрипт оболочки. – monk

ответ

0

Я считаю, что вы уже создали беспарольную вход с помощью SSH-keygen.Please использовать ниже опций для SSH в сценарии

ssh -t -t -tq <IP> 
Смежные вопросы