Communications client-serveur lors de l'installation » Historique » Version 5
Christophe Martin, 21/09/2010 07:01
1 | 1 | Christophe Martin | h1. Communications client-serveur lors de l'installation |
---|---|---|---|
2 | |||
3 | Dans le principe : |
||
4 | |||
5 | 4 | Christophe Martin | Tout démarre sur le client. |
6 | 2 | Christophe Martin | |
7 | 4 | Christophe Martin | L'application, le script de setup, le paquet contient une clef secrete appelée @register-key@ |
8 | 1 | Christophe Martin | |
9 | 5 | Christophe Martin | Le script crée si besoin un utilisateur local @bckpciuem@ et lui donne les privilèges suffisantpour qu'il puisse faire les sauvegardes et les restaurations. Cetutilisateur a dans son home un script spécial appelé @rsyncsend.sh@ |
10 | 1 | Christophe Martin | |
11 | 5 | Christophe Martin | Le script obtient de manière interactive le logon de l'utilisateur principal de l'ordinateur (logon défini dans l'annuaire LDAP). |
12 | |||
13 | 4 | Christophe Martin | Le script fait une connexion ssh |
14 | * au serveur de sauvegarde, |
||
15 | * en utilisant le clef secrete @register-key@ |
||
16 | * vers le compte @backuppc@ |
||
17 | * demande l'exécution d'une hypothétique commande de la forme OS:logon |
||
18 | |||
19 | 1 | Christophe Martin | Le serveur exécute alors une commande spéciale associée à la clef secrete, sous le compte backuppc. |
20 | 4 | Christophe Martin | |
21 | 5 | Christophe Martin | Cette commande récupère le paramètre OS:logon via la variable d'environnement SSH_ORIGINAL_COMMANDE, passée par sshd |
22 | 4 | Christophe Martin | |
23 | Cette commande effectue alors toute une série de vérifications sur le client, l'OS demandé et le logon, etc... et si tout va bien répond : |
||
24 | |||
25 | 1 | Christophe Martin | <pre> |
26 | success |
||
27 | </pre> |
||
28 | 4 | Christophe Martin | Sur la première ligne. |
29 | 3 | Christophe Martin | |
30 | 4 | Christophe Martin | NB Tout autre réponse du serveur doit être considérée comme un message d'erreur. L'ensemble de cette ligne et les suivantes constituent alors le message d'erreur. |
31 | |||
32 | Quand la première ligne est « @success@ » viennent ensuite dans un ordre non spécifié des lignes de la forme @mot-clef:valeur@. pour l'instant sont définis les mots-clef suivants : |
||
33 | 1 | Christophe Martin | * @key@ Il s'agit de la clef publique correspondant à la clef privée utilisée par le serveur pour effectuer les sauvegardes. Cette clef devra être utilisée dans le fichier @~bckpciuem/authorized_keys@ pour affecter les connexions du serveur à la commande de backup/restauration « @rsyncsend.sh@ » |
34 | 3 | Christophe Martin | * @url@ L'URL que l'utilisateur doit visiter pour personnaliser ses sauvegardes. |
35 | 4 | Christophe Martin | |
36 | 5 | Christophe Martin | Le client analyse la réponse du serveur et prend les mesures qui s'imposent. Au minimum, la clef ssh publique doit être associée à la commande @rsyncsend.sh@ de l'utilistaeur local @bckpciuem@ |
37 | 3 | Christophe Martin | |
38 | 2 | Christophe Martin | h1. exemple de commande et dialogue |
39 | 3 | Christophe Martin | |
40 | <pre> |
||
41 | su bckpciuem -c "env SSH_AUTH_SOCK= ssh -x -a -i register-key -l backuppc dugong mac:cmartin" >"/tmp/resultat.$$" 2>&1 |
||
42 | </pre> |
||
43 | Le serveur répond |
||
44 | <pre> |
||
45 | success |
||
46 | url: http://dugong.univ-brest.fr/backuppc/?host=dormeur |
||
47 | key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEBV4umLQWumkHBgznsLNaNZn9pxkLpmPWO09Sqft7OFX/HUcfOF040nscxu7MyMI4Y8TzhMGDtMertYo+PdGTEfg1qyjPgUrH4xLoyiBJ6ygsZiw6YK7IsBPgmGXlHMgBciJnJMaNAyOvLIPxua34Nxp1QmY3i0hiqO/qU5jtIp4nXSFIIvd+1ql/kvO4GDKtSGsiEpgmduOxWX1Z9cYa/F0TAPScJ5cHIO6FmeePC8xIaBEsaunFQt3XfFydVCnap97YUY9gbN6tnUhmb3T9/W9LMkgm8CfR1cbZTSX6xcjs+Za/ALKizMvV6750eqczXqg+nUIjb5Rnf2F7W/0z backuppc server to client dormeur ssh key" |
||
48 | 1 | Christophe Martin | </pre> |