Fonctionnement du ssh » Historique » Version 1
Christophe Dezé, 04/04/2016 19:23
1 | 1 | Christophe Dezé | h1. Fonctionnement du ssh |
---|---|---|---|
2 | 1 | Christophe Dezé | |
3 | 1 | Christophe Dezé | Ansible et la connection au dashboard necessite de se connecter en ssh sur les modules EOLE. |
4 | 1 | Christophe Dezé | |
5 | 1 | Christophe Dezé | le problème : |
6 | 1 | Christophe Dezé | Ansible se lance dans le docker quickzephir |
7 | 1 | Christophe Dezé | le docker dashboard se lance depuis le docker zephir. |
8 | 1 | Christophe Dezé | |
9 | 1 | Christophe Dezé | Il n'est pas question de mettre des clès SSH dans les docker. |
10 | 1 | Christophe Dezé | |
11 | 1 | Christophe Dezé | On va utiliser la clé privée située sur le serveur. |
12 | 1 | Christophe Dezé | La clé publique doit avoir été déployé via le client zephir. |
13 | 1 | Christophe Dezé | |
14 | 1 | Christophe Dezé | sur le serveur, on lance |
15 | 1 | Christophe Dezé | |
16 | 1 | Christophe Dezé | if [ -z "$SSH_AUTH_SOCK" ] ; then eval `ssh-agent` -s ssh-add fi |
17 | 1 | Christophe Dezé | cette commande consiste juste à définir la variable environnement SSH_AUTH_SOCK |
18 | 1 | Christophe Dezé | |
19 | 1 | Christophe Dezé | #echo $SSH_AUTH_SOCK |
20 | 1 | Christophe Dezé | /tmp/ssh-Jcm5BMVoE2ri/agent.7709 |
21 | 1 | Christophe Dezé | |
22 | 1 | Christophe Dezé | au demarrage du docker quickzephir, on "partage" le socket SSH_AUTH_SOCK entre l'hote et le docker quickzephir |
23 | 1 | Christophe Dezé | |
24 | 1 | Christophe Dezé | |
25 | 1 | Christophe Dezé | extrait docker-compose |
26 | 1 | Christophe Dezé | @ |
27 | 1 | Christophe Dezé | quickzephir: |
28 | 1 | Christophe Dezé | image: dezechristophe/quickzephir:dev |
29 | 1 | Christophe Dezé | volumes: |
30 | 1 | Christophe Dezé | - $SSH_AUTH_SOCK:$SSH_AUTH_SOCK |
31 | 1 | Christophe Dezé | @ |
32 | 1 | Christophe Dezé | |
33 | 1 | Christophe Dezé | |
34 | 1 | Christophe Dezé | docker exec -ti root_quickzephir_1 bash |
35 | 1 | Christophe Dezé | root@31cb845fdc13:/home/quickzephir# echo $SSH_AUTH_SOCK |
36 | 1 | Christophe Dezé | /tmp/ssh-Jcm5BMVoE2ri/agent.7709 |
37 | 1 | Christophe Dezé | |
38 | 1 | Christophe Dezé | le socket est bien partagé. |
39 | 1 | Christophe Dezé | Depuis le docker,on doit pouvoir utiliser la clé privé de l'hote pour se connecter sur les modules EOLE (si la clé publique a été envoyée). |
40 | 1 | Christophe Dezé | les commandes ansible doivent fonctionner. |
41 | 1 | Christophe Dezé | |
42 | 1 | Christophe Dezé | |
43 | 1 | Christophe Dezé | De même, du docker quickzephir, des docker ssh-tunnel servent à lancer des commandes à distances sur des modules, via SSH. |
44 | 1 | Christophe Dezé | Dans /quickzephir/quickzephir/server/api/docker/docker.controller.js |
45 | 1 | Christophe Dezé | on partage,via le parametre "colume" ce meme socket dans chaque docker ssh-tunnel |
46 | 1 | Christophe Dezé | @ |
47 | 1 | Christophe Dezé | var authsocks = process.env.SSH_AUTH_SOCK; |
48 | 1 | Christophe Dezé | var volumes='["' + authsocks + ':' + authsocks + '"]'; |
49 | 1 | Christophe Dezé | var options = JSON.parse('{"Tty": true, "Env": [ "LINUXDASH=' + ip + '", "SSH_AUTH_SOCK=' + authsocks + '"],"Labels": { "linuxdash": "' + ip + '"}, "Binds": ' + volumes + '}'); |
50 | 1 | Christophe Dezé | docker.run('dezechristophe/ssh-tunnel', '', logStream, options , function (err, data, container) |
51 | 1 | Christophe Dezé | @ |