Хотите написать простой SVN скрипт для обновления bash

Я хочу написать простой скрипт 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, не заинтересован в том, чтобы настроить это для меня!

1
задан 22 February 2012 в 18:54

1 ответ

П.С. Я знаю, что должен использовать аутентификацию с открытым / закрытым ключом SSH, но тот, кто запускает сервер, на котором размещено репозиторий SVN, не заинтересован в том, чтобы настроить его для меня!

Ну, это очень плохо ! Я предполагаю, что у вас есть доступ по SSH для этого. Большинство современных установок OpenSSH не требуют каких-либо настроек на сервере (после его установки). Я бы серьезно подумал, просто сначала попытаться установить ключ SSH:

ssh-keygen
ssh-copy-id username@remotehost

Затем просто попробуйте ssh username@remotehost. Если он входит в систему, магия, если нет, вы теряете только минуту своей жизни:)

После этого у вас есть варианты, такие как expect и sshpass, которые намного хуже, потому что вы жестко кодируете свой пароль в текстовом виде. Юк.

0
ответ дан 22 February 2012 в 18:54

Другие вопросы по тегам:

Похожие вопросы: