2016-09-11 2 views
0

У меня есть скрипт, который вводит список серверов ips и ssh с помощью ключа pem для запуска команд, но на некоторых серверах есть пароль, который я хочу пропустить, чтобы он занял следующий ip? Ниже приведен сценарий:Пропустить пароль с помощью скрипта sh

cat privateiptest-ss | while read LINE 
do 
echo $LINE >> ss-prodcht1.txt 
stackname=$LINE 
ssh -o "PasswordAuthentication=no" -o "StrictHostKeyChecking no" -t -t -i key.pem ec2[email protected]$stackname "bash -s" < sh.sh 
done 
+0

Это не сработает. Запрос пароля и «нормальный» вывод являются отдельными, выполняемыми отдельными сценариями или программами. Это связано с проблемами безопасности, так что все не может быть автоматизировано, так же, как вы пытаетесь сделать ;-) – arkascha

ответ

1

Если вы используете опцию BatchMode=yes с SSH, т.е.

ssh -o "BatchMode=yes" -o "StrictHostKeyChecking=no" -t -t -i key.pem ec2-us[email protected]$stackname "bash -s" < sh.sh 

тогда SSH никогда не будет запрашивать пароль. Для серверов, которым требуется пароль, ssh не будет работать.

+0

Большое вам спасибо, что я хотел надеяться, что это ничего не сломает? –

+0

@ San's Я не знаю, может ли это что-то сломать, но он сделает то, что вы просите. Тебе просто нужно проверить это самостоятельно. – redneb

 Смежные вопросы

  • Нет связанных вопросов^_^