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


Answers:


20

这在某种程度上取决于您的SVN版本。最近的(1.6+)版本具有通常的功能--non-interactive(您希望使用该功能以避免出现提示),并且也--trust-server-cert可以执行您想要的操作。


此解决方案似乎有效。不幸的是,命令行证书接受并不能解决我最初的问题。哦,好吧,至少我知道现在不行了。
詹姆斯·麦克马洪

如果这仍然不起作用,则可能是因为您无法在主目录中访问/创建.subversion目录。在此处找到解决方案:chipsandtv.com/articles/svn-invalid-certificates
icc97'4

该chipandtv.com链接已死。还有其他来源吗?
乔·麦克马洪


我最终不得不同时使用这两个选项,现在可以了,谢谢!
rogerdpack 2015年

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@.*:\/#"

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.