diff --git a/config.py b/config.py
index d794c4467095970a702263854c9625849fe8c127..1f45f9dbd9598b0cce8cde6cee424af754ad7db4 100755
--- a/config.py
+++ b/config.py
@@ -4,6 +4,9 @@
 import os
 
 servers = {
+    'perso': {
+        'server_cmd' : [ '/home/dstan/passwords/cranspasswords/cranspasswords-server.py'],
+        'user' : 'dstan' },
     'debug': {
         'server_cmd' : ['/usr/bin/ssh', 'localhost', \
             '/home/dstan/crans/cranspasswords/cranspasswords-server.py'],
diff --git a/cranspasswords.py b/cranspasswords.py
index 636fd631e66597c60d4faacd846b7aec34af542b..2af399b53c50cf5e23374883ec99cd095e628781 100755
--- a/cranspasswords.py
+++ b/cranspasswords.py
@@ -9,6 +9,7 @@ import tempfile
 import os
 import atexit
 import argparse
+import config
 
 ######
 ## GPG Definitions
@@ -26,6 +27,7 @@ VERB = False
 CLIPBOARD = False # Par défaut, place-t-on le mdp dans le presse-papier ?
 FORCED = False #Mode interactif qui demande confirmation
 NROLES = None     # Droits à définir sur le fichier en édition
+SERVER = None
 
 def gpg(command, args = None):
     """Lance gpg pour la commande donnée avec les arguments
@@ -52,20 +54,11 @@ def gpg(command, args = None):
 ######
 ## Remote commands
 
-SERVER_CMD_DEBUG2 = ['/usr/bin/ssh', 'localhost', \
-    '/home/dstan/crans/cranspasswords/cranspasswords-server.py']
-SERVER_CMD_DEBUG = ['/usr/bin/ssh', 'vo',\
-    '/home/dstan/cranspasswords/cranspasswords-server']
-SERVER_CMD = ['/usr/bin/ssh', 'vert.adm.crans.org',\
-    '/root/cranspasswords/cranspasswords-server']
-#USER = 'dstan'
-USER = os.getenv('USER')  # À définir à la main pour les personnes
-# n'ayant pas le même login sur leur pc
 
 def ssh(command, arg = None):
     """Lance ssh avec les arguments donnés. Renvoie son entrée
     standard et sa sortie standard."""
-    full_command = list(SERVER_CMD)
+    full_command = list(SERVER['server_cmd'])
     full_command.append(command)
     if arg:
         full_command.append(arg)
@@ -113,7 +106,7 @@ def rm_file(filename):
 def get_my_roles():
     """Retoure la liste des rôles perso"""
     allr = all_roles()
-    return filter(lambda role: USER in allr[role],allr.keys())
+    return filter(lambda role: SERVER['user'] in allr[role],allr.keys())
 
 ######
 ## Local commands
@@ -337,7 +330,7 @@ def update_role(roles=None):
 def parse_roles(strroles):
     if strroles == None: return None
     roles = all_roles()
-    my_roles = filter(lambda r: USER in roles[r],roles.keys())
+    my_roles = filter(lambda r: SERVER['user'] in roles[r],roles.keys())
     my_roles_w = [ r[:-2] for r in my_roles if r.endswith('-w') ]
     ret = set()
     writable = False
@@ -359,8 +352,8 @@ def parse_roles(strroles):
 
 if __name__ == "__main__":
     parser = argparse.ArgumentParser(description="trousseau crans")
-    parser.add_argument('--test',action='store_true',default=False,
-        help='Utilisation du serveur de test')
+    parser.add_argument('--server',default='default',
+        help='Utilisation d\'un serveur alternatif (test, etc)')
     parser.add_argument('-v','--verbose',action='store_true',default=False,
         help="Mode verbeux")
     parser.add_argument('-c','--clipboard',action='store_true',default=False,
@@ -401,13 +394,12 @@ if __name__ == "__main__":
         help="Nom du fichier à afficher")
 
     parsed = parser.parse_args(sys.argv[1:])
-    DEBUG = parsed.test
-    if DEBUG:
-       SERVER_CMD = SERVER_CMD_DEBUG 
     VERB = parsed.verbose
+    DEBUG = VERB
     CLIPBOARD = parsed.clipboard
     FORCED = parsed.force
     NROLES = parse_roles(parsed.roles)
+    SERVER = config.servers[parsed.server]
 
     if NROLES != False:
         if parsed.action.func_code.co_argcount == 0: