Есть ли опция командной строки для автоматического принятия сертификата SSL на постоянной основе с использованием командной строки SVN таким образом, чтобы избежать запроса?
Есть ли опция командной строки для автоматического принятия сертификата SSL на постоянной основе с использованием командной строки SVN таким образом, чтобы избежать запроса?
Ответы:
Это несколько зависит от вашей версии SVN. Последние (1.6+) имеют обычный --non-interactive
(который вы хотите использовать, чтобы избежать подсказок), а также тот, --trust-server-cert
который может делать то, что вы хотите.
Использование --trust-server-cert
не будет постоянно принимать сертификат SSL. Вы можете навсегда принять сертификат SSL через командную строку, используя Перенаправление ввода и не используя --non-interactive
.
Вот пример для Unix / Linux:
svn list [TARGET] << EOF
p
EOF
ПРИМЕЧАНИЕ. Приведенное выше «p» относится к (p) ошибочно.
1.6.6 (r40053)
), к сожалению, просто не будет предлагать p
(навсегда) опцию вообще. И так как это на древней коробке, которую я не могу больше обновлять ...
Мое решение использует ожидание. Это не безопасно, но будет работать, когда другие решения не будут.
#!/usr/bin/expect -f
set svn_username [lindex $argv 0]
set svn_password [lindex $argv 1]
set svn_url [lindex $argv 2]
spawn svn --username=${svn_username} --password=${svn_password} list ${svn_url}
expect "(R)eject, accept (t)emporarily or accept (p)ermanently? "
send -- "p\r"
expect "Store password unencrypted (yes/no)? "
send "no\r"
expect -re "root@.*:\/#"
Вы должны иметь возможность скачать сертификат и затем поместить его в соответствующий каталог. Или вы можете загрузить сертификат CA и затем установить опцию конфигурации ssl-author-files для доверия этому CA.
См. Раздел « Управление сертификатами SSL » в книге.