LINUX.ORG.RU

Ввод пароля в скрипте

 , ,


2

2

Здравствуйте. Появилась необходимость в использовании SSHFS, каждый раз вводить пароль - нехорошо. Нашел инструкцию по созданию ключей, дабы вообще без паролей обойтись, но..тут уже дело принципа стало:). Как передать пароль в консоли\скрипте?

У товарища на Арче вот такая штука вполне себе работает:

echo "пароль" | sudo mc
У меня на Linux Mint даже такое работать отказывается =_= В чем может быть причина?

А вот с подключением к SSH и на Арче такое не проканывает, есть способ передать пароль туда, или же только ключи создавать?

$ sudo --help|grep "read password"
  -S, --stdin                 read password from standard input
Smola
()

использовать expect шелл, или писать скрипты с использованием каких-то expect библиотек типа pexpect

stevejobs ★★★★☆
()
Ответ на: комментарий от DeadEye

-S ок, работает, спасибо. Почему на Арче работает без этой опции?

И, я так понимаю, с SSH так не прокатит, ибо опции подобной нет? Т.е. вообще - пароль можно передать лишь только в те программы\команды, которые это заранее поддерживают?

Или же мудрить с библиотеками и тп, как пишут ниже..

Leonius
() автор топика

тут уже дело принципа стало:). Как передать пароль в консоли\скрипте?

man expect

Но вообще говоря, это не нужно. Только академический интерес представляет такое извращение.

emulek
()
Ответ на: комментарий от Leonius

И, я так понимаю, с SSH так не прокатит, ибо опции подобной нет?

apt-get install sshpass
sshpass -p "123456" ssh root@mysupersecureserver.com
Lavos ★★★★★
()
Ответ на: комментарий от Leonius

Т.е. вообще - пароль можно передать лишь только в те программы\команды, которые это заранее поддерживают?

все программы поддерживают пароль в конфиге. Пароль — дополнительная мера защиты, его всегда можно отключить.

Для sudo проще всего поставить NOPASSWD, потому что хранить пароль в скрипте не имеет никакого смысла.

Кроме того, sudo можно(и нужно) ограничить выполнением только нужной команды, а не всего подряд. Т.е. если твой скрипт хочет сделать ifconfig -a, то просто пропиши эту команду в visudo.

emulek
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.