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?

James McMahon
źródło
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.

pjz
źródło
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.

Jesse
źródło
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@.*:\/#"
Matt Friedman
źródło
0

Powinno być możliwe pobranie certyfikatu, a następnie umieszczenie go w odpowiednim katalogu. Możesz też pobrać certyfikat urzędu certyfikacji, a następnie ustawić opcję konfiguracji ssl-authority-files na zaufane temu urzędowi certyfikacji.

Zobacz rozdział Zarządzanie certyfikatem SSL w książce.

Zoredache
źródło
Jestem tutaj w bardzo dziwnej sytuacji, patrz serverfault.com/questions/7648/... , więc chcę móc to zrobić jednym poleceniem.
James McMahon