Чи є можливість командного рядка автоматично приймати сертифікат SSL назавжди за допомогою командного рядка SVN таким чином, щоб уникнути запиту?
Чи є можливість командного рядка автоматично приймати сертифікат SSL назавжди за допомогою командного рядка SVN таким чином, щоб уникнути запиту?
Відповіді:
Це дещо залежить від вашої версії SVN. Останні (1.6+) мають звичайні --non-interactive
(які ви хочете використовувати, щоб уникнути підказок), а також такі, --trust-server-cert
які можуть робити те, що ви хочете.
Використання --trust-server-cert
не приймає назавжди сертифікат SSL. Ви можете назавжди прийняти сертифікат SSL через командний рядок, використовуючи Input Redirection, а не використовуючи --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- Authority -файлів, щоб довіряти цьому CA.
Див. Розділ Управління сертифікатами SSL у книзі.