1ère étape :
Création d'un utilisateur svn qui sera celui utiliser pour se logguer sur le serveur.
1.1 Authentification par clefs publique/privée ssh
Chaque utilisateur créé une clef ssh ( ssh-keygen ). Ajouter la clef publique générée dans ~/.ssh/authorized_keys
cat clef.pub > ~svn/.ssh/authorized_keys
Maintenant les utilisateurs peuvent se logguer directement en tant que l'utilisateur svn.
Allons voir un peu plus avant le contenu du fichier ~svn/.ssh/authorized_keys ...
Chaque ligne est indépendante, et de la la forme
command="COMMAND" TYPE KEY COMMENTEn utilisant cette syntaxe, pour restreindre l'accès uniquement au service svn, on peut également ajouter "no-port-forwarding" ainsi que "no-agent-forwarding,no-X11-forwarding,no-pty"
command="svnserve -t",no-port-forwarding TYPE KEY COMMENT
ainsi l'on utilisera une fois la clef ssh enregistrée (ssh-agent bash; ssh-add clef)
svn co svn+ssh://svn@host/path/to/base/repos
1.2 Plusieurs utilisateurs
Pour l'instant tout le monde se loggue en tant qu'utilisateur "svn". En particulier, il est ainsi impossible de différentier les auteurs des différents commits effectués.
ajouter l'option "--tunnel-user=user" également pour l'identifier.
2ème étape : Eviter d'avoir à afficher tout le path sur le serveur
Si le repo est dans /path/to/base/repos, alors :
command="svnserve -r /path/to/base/",no-port-forwarding TYPE KEY COMMENT
Attention : il semble que l'option -r et l'option -t soient incompatibles si l'on utilise pas l'option --tunnel-user
3 Et Au Final...
Nous obtenons dans le fichier ~svn/.ssh/authorized_keys :
command="/path/to/svnserve -t -r /repository/root --tunnel-user=alice",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty TYPE1 KEY1 COMMENT1
command="/path/to/svnserve -t -r /repository/root --tunnel-user=bob",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty TYPE2 KEY2 COMMENT2
1.4 liens/remerciements.
- Merci à PeterS sur irc.freenode.net/#svn
- Pour certain des exemples : http://svn.collab.net/repos/svn/trunk/notes/ssh-tricks
Aucun commentaire:
Enregistrer un commentaire