Я хочу написать простой скрипт bash, который будет обновлять рабочую копию SVN в заданном каталоге. Доступ к хранилищу осуществляется по протоколу svn+ssh
. Базовый процесс, которому нужно следовать:
#!/bin/bash
# temporarily relax firewall
iptables -I OUTPUT -p tcp --dport 12345 -j ACCEPT
svn up /path/to/working/copy
# prompt for ssh password will be here
# close firewall again
iptables -I OUTPUT -p tcp --dport 12345 -j REJECT
Я застрял на том, как сказать моему bash-скрипту, чтобы при появлении запроса вводить пароль для SSH. Как и ожидалось, ввод пароля в строке после команды svn up
не работает.
Это вообще возможно? Если нет, то будут оценены альтернативные способы достижения этой цели.
P.S. Я знаю, что должен использовать аутентификацию SSH с открытым / закрытым ключом, но человек, который запускает сервер, на котором размещается репозиторий SVN, не заинтересован в том, чтобы настроить это для меня!
П.С. Я знаю, что должен использовать аутентификацию с открытым / закрытым ключом SSH, но тот, кто запускает сервер, на котором размещено репозиторий SVN, не заинтересован в том, чтобы настроить его для меня!
blockquote>Ну, это очень плохо ! Я предполагаю, что у вас есть доступ по SSH для этого. Большинство современных установок OpenSSH не требуют каких-либо настроек на сервере (после его установки). Я бы серьезно подумал, просто сначала попытаться установить ключ SSH:
ssh-keygen ssh-copy-id username@remotehost
Затем просто попробуйте
ssh username@remotehost
. Если он входит в систему, магия, если нет, вы теряете только минуту своей жизни:)После этого у вас есть варианты, такие как
expect
иsshpass
, которые намного хуже, потому что вы жестко кодируете свой пароль в текстовом виде. Юк.