¿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?
¿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?
Respuestas:
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-cert
que puede hacer lo que desee.
El uso --trust-server-cert
no 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.
1.6.6 (r40053)
desafortunadamente mi versión ( ) simplemente no ofrece la p
opción (permanentemente). Y dado que esto está en una caja antigua que ya no puedo actualizar ...
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@.*:\/#"
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.