¿Cómo se acepta un certificado SSL a través de la línea de comando SVN?

20

¿Existe una opción de línea de comando para aceptar automáticamente un certificado SSL de forma permanente utilizando la línea de comando SVN de una manera que evite la solicitud?

James McMahon
fuente
¿Sería mejor para Stack Overflow?
James McMahon

Respuestas:

20

Depende un poco de su versión de SVN. Las recientes (1.6+) tienen lo habitual --non-interactive(que desea utilizar para evitar avisos) y también una --trust-server-certque puede hacer lo que desee.

pjz
fuente
Esta solución parece funcionar. Lamentablemente, el certificado de línea de comando aceptar no resolvió mi problema inicial. Oh, bueno, al menos sé lo que no funciona ahora.
James McMahon
Si esto todavía no funciona, puede ser porque no puede acceder / crear el directorio .subversion en su directorio de inicio. Solución encontrada aquí: chipsandtv.com/articles/svn-invalid-certificates
icc97
El enlace chipsandtv.com está muerto. ¿Hay otra fuente?
Joe McMahon
Terminé teniendo que usar ambas opciones, ahora funciona, ¡gracias!
rogerdpack
10

El uso --trust-server-certno aceptará permanentemente el certificado SSL. Puede aceptar permanentemente el certificado SSL a través de la línea de comandos utilizando la redirección de entrada y no utilizando --non-interactive.

Aquí hay un ejemplo para Unix / Linux:

svn list [TARGET] << EOF
p
EOF

NOTA: La "p" anterior es para (p) de forma permanente.

Jesse
fuente
Bueno, 1.6.6 (r40053)desafortunadamente mi versión ( ) simplemente no ofrece la popción (permanentemente). Y dado que esto está en una caja antigua que ya no puedo actualizar ...
0xC0000022L
2

Mi solución usa esperar. No es seguro, pero funcionará cuando las otras soluciones no lo hagan.

#!/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
fuente
0

Debería poder descargar el certificado y luego colocarlo en el directorio apropiado. O puede descargar el certificado de CA y luego configurar la opción de configuración ssl-Authority-Files para confiar en esa CA.

Consulte la sección Administración de certificados SSL en el libro.

Zoredache
fuente
Estoy en una situación muy extraña aquí, vea serverfault.com/questions/7648/… , así que quiero poder llevarlo a cabo con un solo comando.
James McMahon