Вот он - новый рабочий день. продолжаем мозговой штурм...
> Ну, попробуйте в скрипте сделать так:
С cat так и не свершилось - у меня постоянно требует пароль, и не важно каким-бы способом я не пытался.
> echo 'password' | sshfs user@remote.host:/somedir /somemydir -o password_stdin
Решение то вроди и рабочее, но вот только у меня не прокатило, при попытке подключения пишет следующее:
remote host has disconnected
При включении режима отладки получаю следующее:
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: password
debug1: read_passphrase: can't open /dev/tty: Device not configured
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: keyboard-interactive
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: No more authentication methods to try.
Permission denied (publickey,password,keyboard-interactive).
remote host has disconnected
Такое впечатление что пытается использовать ключи, которых нет, после чего пытается использовать пароль, но в итоге ругается что не настроено... Вообще странно, но похоже проблема на стороне машины, к которой подключаюсь.
> Если девушка-оператор-с-бюстом-не-меньше-6 знает как писать скрипты на баше с expect для
> ввода пароля, я думаю это будет только приветствоваться :)
Если девушка-оператор-с-бюстом-не-меньше-6, то мне наверное не до шелла было-бы :)
> Попробуй утилитку sshpass http://sourceforge.net/projects/sshpass/
Как я понял для FreeBSD такого нет, толи так глючно работает что лучше считать что его нет.
> ...ssh-agent и аутентификацию по ключу http://www.opennet.me/tips/1763_ssh_cache_password.shtml
> , второй вариант - с ControlMaster там тоже описан.
М? А как на счет этого?
> Скажу заранее - авторизацию по ключах сделать не могу по нескольких причинах,
> которые называть не вижу смысла.
Почему? Да много вариантов - например религия не позволяет, или я хочу делать бейкапы сайта, к котором доступ по ssh есть, но хостер услугу авторизации по ключах не предоставляет, или, или, или...
Я-же сразу написал что такой вариант не проходит.
> А вообще-то такие вещи делаются через expect (http://linux.die.net/man/1/expect)
Признаюсь честно - не знал о существовании expect, и при этом что-то подобное искал уже довольно давно. Спасибо.
Итак, спустя каких-то 5 часов мозгового штурма решение все таки было найдено. Сделал все через expect.
Вот он, мой чудный скрипт:
#!/usr/local/bin/expectspawn -ignore HUP /usr/local/bin/sshfs root@192.168.1.1:/usr/ /mountpoint
expect "*assword*"
send "SuperPass\r"
expect "\n"
При чем без "-ignore HUP" в системе творятся вообще странные вещи - после выполнения скрипта диск вроди и подмонтировался, но df диск не видит, а при попытке или открыть точку монтирования, или считать содержимое или отмонтировать, терминал наглухо вис. Больше часа головой об эту проблему бился, но как говорится "Если долго мучится, то что нибудь получится", в итоге история все-же закончилась хеппи ендом.
Скрипт вроди работает нормально, проблем пока не замечено. Всем спасибо за помощь!