Как вы принимаете сертификат SSL через командную строку SVN?

20

Есть ли опция командной строки для автоматического принятия сертификата SSL на постоянной основе с использованием командной строки SVN таким образом, чтобы избежать запроса?

Джеймс МакМэхон
источник
Будет ли это лучше подходит для переполнения стека?
Джеймс МакМэхон

Ответы:

20

Это несколько зависит от вашей версии SVN. Последние (1.6+) имеют обычный --non-interactive(который вы хотите использовать, чтобы избежать подсказок), а также тот, --trust-server-certкоторый может делать то, что вы хотите.

pjz
источник
Это решение, кажется, работает. К сожалению, принятие сертификата командной строки не решило мою первоначальную проблему. Ну хорошо, по крайней мере, я знаю, что не работает сейчас.
Джеймс МакМэхон
Если это все еще не работает, это может быть потому, что вы не можете получить доступ / создать каталог .subversion в вашем домашнем каталоге. Решение найдено здесь: chipsandtv.com/articles/svn-invalid-certificates
icc97
Ссылка chipsandtv.com не работает. Есть ли другой источник?
Джо МакМахон
Мне пришлось использовать оба варианта, теперь это работает, спасибо!
rogerdpack
10

Использование --trust-server-certне будет постоянно принимать сертификат SSL. Вы можете навсегда принять сертификат SSL через командную строку, используя Перенаправление ввода и не используя --non-interactive.

Вот пример для Unix / Linux:

svn list [TARGET] << EOF
p
EOF

ПРИМЕЧАНИЕ. Приведенное выше «p» относится к (p) ошибочно.

Джесси
источник
Что ж, моя версия ( 1.6.6 (r40053)), к сожалению, просто не будет предлагать p(навсегда) опцию вообще. И так как это на древней коробке, которую я не могу больше обновлять ...
0xC0000022L
2

Мое решение использует ожидание. Это не безопасно, но будет работать, когда другие решения не будут.

#!/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@.*:\/#"
Мэтт Фридман
источник
0

Вы должны иметь возможность скачать сертификат и затем поместить его в соответствующий каталог. Или вы можете загрузить сертификат CA и затем установить опцию конфигурации ssl-author-files для доверия этому CA.

См. Раздел « Управление сертификатами SSL » в книге.

Zoredache
источник
Я нахожусь в очень странной ситуации здесь, см. Serverfault.com/questions/7648/… , поэтому я хочу иметь возможность выполнить это одной командой.
Джеймс МакМэхон