是否有一个命令行选项,以避免提示的方式永久使用SVN命令行自动接受SSL证书?
这取决于你的svn版本。 最近(1.6+)有一些常用的非交互式(你想用来避免提示),还有一个–trust-server-cert可以做你想做的事情。
使用--trust-server-cert
不会永久接受SSL证书。 您可以使用inputredirect通过命令行永久接受SSL证书,而不是使用--non-interactive
。
这里是一个Unix / Linux的例子:
svn list [TARGET] << EOF p EOF
注意:上面的“p”是用于(p)的。
我的解决scheme使用expect。 这是不安全的,但当其他解决scheme不会。
#!/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证书,然后将configuration选项ssl-authority-files设置为信任该CA.
请参阅本书中的SSL证书pipe理部分。