Existe-t-il une option de ligne de commande pour accepter automatiquement un certificat SSL en utilisant la ligne de commande SVN de manière à éviter l'invite?
Existe-t-il une option de ligne de commande pour accepter automatiquement un certificat SSL en utilisant la ligne de commande SVN de manière à éviter l'invite?
Réponses:
Cela dépend quelque peu de votre version de SVN. Les plus récents (1.6+) ont l'habituel --non-interactive
(que vous souhaitez utiliser pour éviter les invites) et aussi --trust-server-cert
celui qui peut faire ce que vous voulez.
L'utilisation --trust-server-cert
n'acceptera pas définitivement le certificat SSL. Vous pouvez accepter définitivement le certificat SSL via la ligne de commande en utilisant la redirection d'entrée et non en utilisant --non-interactive
.
Voici un exemple pour Unix / Linux:
svn list [TARGET] << EOF
p
EOF
REMARQUE: le "p" ci-dessus est pour (p) de manière permanente.
1.6.6 (r40053)
) n'offrira malheureusement tout simplement pas l' p
option (permanente). Et puisque c'est sur une ancienne boîte que je ne peux plus mettre à jour ...
Ma solution utilise expect. Ce n'est pas sécurisé, mais cela fonctionnera lorsque les autres solutions ne le seront pas.
#!/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@.*:\/#"
Vous devriez pouvoir télécharger le certificat, puis le placer dans le répertoire approprié. Ou vous pouvez télécharger le certificat de l'autorité de certification, puis définir l'option de configuration ssl-authority-files pour approuver cette autorité de certification.
Voir la section Gestion des certificats SSL dans le livre.