Jak akceptujesz certyfikat SSL za pomocą wiersza polecenia SVN?


20

Czy istnieje opcja wiersza polecenia, aby automatycznie zaakceptować certyfikat SSL na stałe przy użyciu wiersza polecenia SVN w sposób pozwalający uniknąć monitu?


Czy lepiej by to było w przypadku przepełnienia stosu?
— James McMahon,

Odpowiedzi:


20

Zależy to nieco od twojej wersji SVN. Najnowsze (1.6+) mają zwykłe --non-interactive(których chcesz użyć, aby uniknąć monitów), a także takie, --trust-server-certktóre mogą robić, co chcesz.


To rozwiązanie wydaje się działać. Niestety zaakceptowanie certyfikatu wiersza polecenia nie rozwiązało mojego początkowego problemu. No cóż, przynajmniej wiem, co teraz nie działa.
— James McMahon

Jeśli to nadal nie działa, przyczyną może być to, że nie możesz uzyskać dostępu / utworzyć katalogu .subversion w swoim katalogu domowym. Rozwiązanie znalezione tutaj: chipsandtv.com/articles/svn-invalid-certificates
— icc97

Link chipsandtv.com nie działa. Czy jest inne źródło?
— Joe McMahon,


Skończyło się na tym, że musiałem użyć obu opcji, teraz działa, dzięki!
— rogerdpack

10

Użycie --trust-server-certnie spowoduje trwałego zaakceptowania certyfikatu SSL. Możesz na stałe zaakceptować certyfikat SSL za pomocą wiersza poleceń, używając przekierowania wejściowego i nie używając --non-interactive.

Oto przykład dla Unix / Linux:

svn list [TARGET] << EOF
p
EOF

UWAGA: Powyższe „p” jest dla (p) trwale.


Cóż, moja wersja ( 1.6.6 (r40053)) niestety po prostu nie oferuje opcji p(na stałe). A ponieważ jest to na starożytnym pudełku, którego nie mogę już aktualizować ...
— 0xC0000022L

2

Moje rozwiązanie wykorzystuje oczekiwanie. Nie jest bezpieczny, ale będzie działał, gdy inne rozwiązania nie.

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.