Cloud@lpnhe: complément clé ssh terminée authored by Aurélien Bailly-Reyre's avatar Aurélien Bailly-Reyre
...@@ -39,10 +39,11 @@ Pour les utilisateurs du LPNHE, les *login/password* de connexion à la passere ...@@ -39,10 +39,11 @@ Pour les utilisateurs du LPNHE, les *login/password* de connexion à la passere
ils vous sont communiqués à l'issue de la création de votre compte. ils vous sont communiqués à l'issue de la création de votre compte.
> **Remarque** > **Remarque**
>
> Les IPs des passerelles sont enregistrées dans le serveur DNS. Vous pouvez donc utiliser le nom de domaine d'une passerelle plutôt que son IP, > Les IPs des passerelles sont enregistrées dans le serveur DNS. Vous pouvez donc utiliser le nom de domaine d'une passerelle plutôt que son IP,
> en remplaçant `IP_PROJECT_SSHGATE` par `lpncloud-project.in2p3.fr` où *project* est le nom du projet auquel vous appartenez. > en remplaçant `IP_PROJECT_SSHGATE` par `lpncloud-project.in2p3.fr` où *project* est le nom du projet auquel vous appartenez.
Il faut maintenant configurer le client. Pour cela, créer Il faut maintenant configurer le client. Pour cela, créez
le fichier `${HOME}/.cloud.env` avec le contenu suivant (les le fichier `${HOME}/.cloud.env` avec le contenu suivant (les
valeurs *username*, *password* et *projectname* sont à remplacer par celles qui vous valeurs *username*, *password* et *projectname* sont à remplacer par celles qui vous
ont été transmises lors de la création de votre compte sur le service) : ont été transmises lors de la création de votre compte sur le service) :
...@@ -155,8 +156,33 @@ $ ssh-keygen -t rsa -b 4096 ...@@ -155,8 +156,33 @@ $ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair. Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa): Enter file in which to save the key (/home/username/.ssh/id_rsa):
``` ```
Taper sur la touche `Enter` pour accepter le chemin et le nom par défaut du fichier dans lequel votre clé sera contenue.
Il vous est ensuite demandé de rentrer une *passphrase* (non vide). Une fois cette opération terminée, vous trouverez
dans le dossier `/home/username/.ssh/`, deux fichiers nommés `id_rsa` et `id_rsa.pub`. Le premier contient la clé SSH privée;
le second la clé publique qui lui est associée.
> **IMPORTANT**
> Ne jamais communiquer la clé privée.
Pour vous connecter à un serveur à l'aide de votre clé, il faut que votre clé publique soit renseignée dans le fichier `/home/username/.ssh/authorized_keys`
de la machine distante. Pour ce faire, il faut utiliser la commande `ssh-copy-id`. Par exemple, pour vous connecter via clé SSH sur la passerelle de votre projet,
il faut taper :
``` {.sourceCode .console}
ssh-copy-id -i ${HOME}/.ssh/id_rsa.pub username@IP_PROJECT_SSHGATE
```
Vous pourrez dès lors vous connecter depuis n'importe quelle poste de travail sur lequel se trouve votre clé privée.
2. Pour se connecter aux VMs par clé SSH, il est nécessaire d'enregistrer sa clé SSH publique dans Openstack.
En supposant que vos clés publique et privée se trouvent que sur votre poste de travail, il faut d'abord copier
la clé publique sur la passerelle :
``` {.sourceCode .console} ``` {.sourceCode .console}
$ scp ${HOME}/.ssh/id_rsa.pub username@IP_PROJECT_SSHGATE:.ssh/
```
Il faut ensuite se connecter sur la passerelle et utiliser la commande `openstack keypair create` pour ajouter votre clé publique
(en oubliant pas de *sourcer* le fichier `.cloud.env` comme expliqué avant si ce n'est pas déjà fait) :
``` {.sourceCode .console}
$ ssh username@IP_PROJECT_SSHGATE
$ openstack keypair create --public-key=${HOME}/.ssh/id_rsa.pub YOUR_KEY_NAME $ openstack keypair create --public-key=${HOME}/.ssh/id_rsa.pub YOUR_KEY_NAME
$ openstack keypair list $ openstack keypair list
+---------------+-------------------------------------------------+ +---------------+-------------------------------------------------+
...@@ -165,7 +191,6 @@ $ openstack keypair list ...@@ -165,7 +191,6 @@ $ openstack keypair list
| YOUR_KEY_NAME | 33:91:4b:38:52:63:1d:18:7b:e0:e3:0d:3b:63:ce:4b | | YOUR_KEY_NAME | 33:91:4b:38:52:63:1d:18:7b:e0:e3:0d:3b:63:ce:4b |
+---------------+-------------------------------------------------+ +---------------+-------------------------------------------------+
``` ```
La commande `ssh-keygen -t rsa -b 4096` génère par défaut une clé privée `id_rsa` et une clé publique `id_rsa.pub` dans le dossier `.ssh/`. La clé privée ne doit jamais être communiquée.
# Gestion des machines virtuelles # Gestion des machines virtuelles
...@@ -428,13 +453,17 @@ Les identifiants de connexions pour les images les plus fréquemment utilisées ...@@ -428,13 +453,17 @@ Les identifiants de connexions pour les images les plus fréquemment utilisées
page](https://docs.openstack.org/image-guide/obtain-images.html) de la documentation officielle d'`Openstack`. page](https://docs.openstack.org/image-guide/obtain-images.html) de la documentation officielle d'`Openstack`.
> **Remarques** > **Remarques**
> Pour se connecter directement à la VM, il est possible de faire un tunnel SSH en rajoutant >
> 1. Pour se connecter à la VM depuis la passerelle comme l'indique la commande ci-dessus, il est nécessaire que la
> clé privée SSH se trouve dans le dossier `.ssh/` de votre *home* utilisateur de la passerelle.
>
> 2. Pour se connecter directement à la VM depuis un poste de travail, il est possible de faire un tunnel SSH en ajoutant
> dans le fichier `~/.ssh/config` les instructions suivantes : > dans le fichier `~/.ssh/config` les instructions suivantes :
> ``` {.sourceCode .console} > ``` {.sourceCode .console}
> Host MY_VM_NAME > Host MY_VM_NAME
> User OS_LOGIN > User OS_LOGIN
> Hostname IP_MY_VM > Hostname IP_MY_VM
> ForwardAgent yes > ForwardAgent no
> ProxyCommand ssh -XW %h:%p USER_NAME@IP_PROJECT_SSHGATE > ProxyCommand ssh -XW %h:%p USER_NAME@IP_PROJECT_SSHGATE
> ``` > ```
> Noter qu'ici `MY_VM_NAME` peut prendre n'importe quel nom. Pour se connecter à la VM, > Noter qu'ici `MY_VM_NAME` peut prendre n'importe quel nom. Pour se connecter à la VM,
...@@ -442,6 +471,15 @@ page](https://docs.openstack.org/image-guide/obtain-images.html) de la documenta ...@@ -442,6 +471,15 @@ page](https://docs.openstack.org/image-guide/obtain-images.html) de la documenta
> ``` {.sourceCode .console} > ``` {.sourceCode .console}
> $ ssh MY_VM_NAME > $ ssh MY_VM_NAME
> ``` > ```
> Au lieu de compléter le fichier `.ssh/config`, on peut taper directement la commande correspondante :
> ``` {.sourceCode .console}
> ssh -o ProxyCommand="ssh -XW %h:%p USER_NAME@IP_PROJECT_SSHGATE" OS_LOGIN@IP_MY_VM
> ```
> 3. Il peut être pratique d'utiliser l'option *Agent Forwarding* pour pouvoir propager sa clé SSH
> sur différents serveurs notamment lorsqu'on se connecte à un serveur via plusieurs passerelles.
> Il faut pour cela avoir un *agent ssh* sur son poste de travail, puis activer le `ForwardAgent`
> dans le fichier `.ssh/config` en remplaçant *no* par *yes* ou tout simplement de rajouter l'option
> `-A` à la commande `ssh`.
Personnalisation des machines virtuelles Personnalisation des machines virtuelles
---------------------------------------- ----------------------------------------
... ...
......