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 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?
Odpowiedzi:
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-cert
które mogą robić, co chcesz.
Użycie --trust-server-cert
nie 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.
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ć ...
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@.*:\/#"
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.