是否有一个命令行选项可以使用 SVN 命令行永久自动接受 SSL 证书,从而避免提示?
答案1
这在某种程度上取决于您的 SVN 版本。最近的版本 (1.6+) 有常用的--non-interactive
(您可以使用它来避免提示) 以及--trust-server-cert
可以执行您想要的操作的。
答案2
使用--trust-server-cert
不会永久接受 SSL 证书。您可以使用命令行永久接受 SSL 证书输入重定向而不是使用--non-interactive
。
以下是 Unix/Linux 的一个示例:
svn list [TARGET] << EOF
p
EOF
笔记:上面的“p”代表(p)ermanently。
答案3
我的解决方案使用 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@.*:\/#"
答案4
您应该能够下载证书,然后将其放在适当的目录中。或者您可以下载 CA 证书,然后设置配置选项SSL 授权文件信任该 CA。
查看SSL 证书管理书中的部分。