Есть ли опция командной строки для автоматического постоянного принятия сертификата 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) постоянно.
В моем решении используется expect. Это небезопасно, но будет работать, когда другие решения не будут.
#!/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-авторитетные файлы доверять этому CA.
Увидеть Управление сертификатами SSL раздел в книге.