Gibt es eine Befehlszeilenoption, um ein SSL-Zertifikat dauerhaft automatisch über die SVN-Befehlszeile zu akzeptieren, sodass die Eingabeaufforderung vermieden wird?
Gibt es eine Befehlszeilenoption, um ein SSL-Zertifikat dauerhaft automatisch über die SVN-Befehlszeile zu akzeptieren, sodass die Eingabeaufforderung vermieden wird?
Antworten:
Es hängt etwas von Ihrer SVN-Version ab. Neuere (1.6+) haben das Übliche --non-interactive
(das Sie verwenden möchten, um Eingabeaufforderungen zu vermeiden) und auch ein --trust-server-cert
, das tun kann, was Sie wollen.
Mit --trust-server-cert
wird das SSL-Zertifikat nicht dauerhaft akzeptiert. Sie können das SSL-Zertifikat dauerhaft über die Befehlszeile akzeptieren, indem Sie die Eingabeumleitung verwenden und nicht --non-interactive
.
Hier ist ein Beispiel für Unix / Linux:
svn list [TARGET] << EOF
p
EOF
HINWEIS: Das "p" oben steht für (p) dauerhaft.
1.6.6 (r40053)
) bietet die p
(permanent) Option leider gar nicht an. Und da es sich um eine alte Box handelt, die ich nicht mehr aktualisieren kann ...
Meine Lösung verwendet erwarten. Es ist nicht sicher, aber es wird funktionieren, wenn die anderen Lösungen dies nicht tun.
#!/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@.*:\/#"
Sie sollten in der Lage sein, das Zertifikat herunterzuladen und es dann in das entsprechende Verzeichnis abzulegen. Oder Sie können das CA-Zertifikat herunterladen und dann die Konfigurationsoption ssl-authority-files so einstellen , dass sie dieser CA vertraut.
Weitere Informationen finden Sie im Abschnitt zur Verwaltung von SSL-Zertifikaten im Buch.