URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 80178
[ Назад ]

Исходное сообщение
"bash скрипт и ввод пароля"

Отправлено devmstr , 06-Май-08 17:13 
как в баш скрипте произвести ввод пароля.
Тоесть например скрипт инициирует связь по ssh.
example:
ssh 192.168.0.15

Как в скрипте написать ввод пароля что бы команды после данной нормально отрабатывались.


Содержание

Сообщения в этом обсуждении
"bash скрипт и ввод пароля"
Отправлено newser , 06-Май-08 17:31 
>как в баш скрипте произвести ввод пароля.
>Тоесть например скрипт инициирует связь по ssh.
>example:
>ssh 192.168.0.15
>
>Как в скрипте написать ввод пароля что бы команды после данной нормально
>отрабатывались.

Для ssh настройте авторизацию по ключам и не парьте мозг.


"bash скрипт и ввод пароля"
Отправлено devmstr , 06-Май-08 17:45 
Для ssh действетельно хорошее решение. Но интересует более общее решение. Тоесть например тот же su. Тоесть сгенерированный скрипт обращается по ssh и выполняет некоторые действия, часть например с правами админа

"bash скрипт и ввод пароля"
Отправлено newser , 06-Май-08 18:10 
>Для ssh действетельно хорошее решение. Но интересует более общее решение. Тоесть например
>тот же su. Тоесть сгенерированный скрипт обращается по ssh и выполняет
>некоторые действия, часть например с правами админа

Вместо su используйте sudo. Там можно настроить вызов необходимых программ без запроса пароля.

Если всё же хотите вводить пароль скриптом, то смотрите в сторону expect.


"bash скрипт и ввод пароля"
Отправлено devmstr , 08-Май-08 10:52 
>>Для ssh действетельно хорошее решение. Но интересует более общее решение. Тоесть например
>>тот же su. Тоесть сгенерированный скрипт обращается по ssh и выполняет
>>некоторые действия, часть например с правами админа
>
>Вместо su используйте sudo. Там можно настроить вызов необходимых программ без запроса
>пароля.
>
>Если всё же хотите вводить пароль скриптом, то смотрите в сторону expect.
>

Expect мне помог, спасибо!


"bash скрипт и ввод пароля"
Отправлено devmstr , 06-Май-08 19:14 
Как вариант я думал перенаправить ввод из файла ввиде  sh connect.sh < input, где connect.sh содержит ssh 192.168.0.15.
А input строку с паролем.
Но запрос на ввод пароля всеравно выдается

"bash скрипт и ввод пароля"
Отправлено hmd , 06-Май-08 21:42 
кури в сторону  expect воводит что хочешь куда хочешь

"bash скрипт и ввод пароля"
Отправлено angra , 07-Май-08 21:47 
Правда? Как насчет того что функции ввода пароля проверяют, что он вводится с терминала, а не с stdin? Expect отличная вещь для работы с удаленными терминалами, но никак не для локальных(как примеры su, ssh, login), если кто-то имеет противоположный опыт буду рад узнать, особенно с примером.

"bash скрипт и ввод пароля"
Отправлено bill , 07-Май-08 21:55 
>Правда? Как насчет того что функции ввода пароля проверяют, что он вводится
>с терминала, а не с stdin? Expect отличная вещь для работы
>с удаленными терминалами, но никак не для локальных(как примеры su, ssh,
>login), если кто-то имеет противоположный опыт буду рад узнать, особенно с
>примером.

В сети полно примеров для ввода пароля ssh с помощью expect.


"bash скрипт и ввод пароля"
Отправлено devmstr , 08-Май-08 10:55 
>Правда? Как насчет того что функции ввода пароля проверяют, что он вводится
>с терминала, а не с stdin? Expect отличная вещь для работы
>с удаленными терминалами, но никак не для локальных(как примеры su, ssh,
>login), если кто-то имеет противоположный опыт буду рад узнать, особенно с
>примером.

С этим все ок. Вот например кусок того что я сделал для примера.

#!/usr/bin/expect
spawn ssh 192.168.0.15
expect assword {send thisIsPassword\r}
expect bsd {send \r}
send "mkdir new\r"
send "su\r"
expect assword {send thisIsPassword\r}
send "cd ..\r"
send "mkdir newDir\r"
send "exit\r"
send "exit\r"
expect eof