如何通过 SVN 命令行接受 SSL 证书?

如何通过 SVN 命令行接受 SSL 证书?

是否有一个命令行选项可以使用 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 证书管理书中的部分。

相关内容