Come si accetta un certificato SSL tramite la riga di comando SVN?


20

Esiste un'opzione da riga di comando per accettare automaticamente un certificato SSL in modo permanente utilizzando la riga di comando SVN in modo da evitare la richiesta?


Sarebbe meglio adattarsi a Stack Overflow?
James McMahon,

Risposte:


20

Dipende in qualche modo dalla tua versione di SVN. Quelli recenti (1.6+) hanno il solito --non-interactive(che si desidera utilizzare per evitare i prompt) e anche uno --trust-server-certche può fare ciò che si desidera.


Questa soluzione sembra funzionare. Purtroppo il certificato della riga di comando accetta non ha risolto il mio problema iniziale. Vabbè, almeno so cosa non funziona adesso.
James McMahon,

Se il problema persiste, è possibile che non sia possibile accedere / creare la directory .subversion nella home directory. Soluzione trovata qui: chipsandtv.com/articles/svn-invalid-certificates
icc97

Il link chipsandtv.com è morto. C'è un'altra fonte?
Joe McMahon,


Ho finito per usare entrambe le opzioni, ora funziona, grazie!
rogerdpack,

10

L'utilizzo --trust-server-certnon accetterà in modo permanente il certificato SSL. È possibile accettare in modo permanente il certificato SSL tramite la riga di comando utilizzando Reindirizzamento input e non utilizzando --non-interactive.

Ecco un esempio per Unix / Linux:

svn list [TARGET] << EOF
p
EOF

NOTA: la "p" sopra è per (p) ermanentemente.


Bene, la mia versione ( 1.6.6 (r40053)) purtroppo semplicemente non offrirà affatto l' popzione (permanente). E poiché questo è su una scatola antica che non posso più aggiornare ...
0xC0000022L

2

La mia soluzione utilizza prevede. Non è sicuro ma funzionerà quando le altre soluzioni non lo faranno.

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

0

Dovresti essere in grado di scaricare il certificato e quindi inserirlo nella directory appropriata. In alternativa, è possibile scaricare il certificato CA e quindi impostare l'opzione di configurazione ssl-authority-files per fidarsi di quella CA.

Vedi la sezione Gestione certificati SSL nel libro.


Sono in una situazione molto strana qui, vedi serverfault.com/questions/7648/… , quindi voglio essere in grado di farlo in un solo comando.
James McMahon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.