documentation/procédures/acces_vm.md

76 lines
2.7 KiB
Markdown

# Accès aux machines virtuelles de l'infrastructure
## Via SSH
### Configuration SSH serveur
En règle générale, l'accès aux machines virtuelles ne se fait pas directement.
Il faut passer par une machine physique.
Pour qu'une nouvelle personne puisse accéder à des machines, il faut :
- Sur la machine physique hypervisant la machine, ajouter la clé publique (ssh)
de la nouvelle personne dans `/home/cominfra/.ssh/authorized_keys`
- Sur chaque machine virtuelle concernée, ajouter la clé publique (ssh)
de la nouvelle personne dans `/home/admin666/.ssh/authorized_keys`
Notes :
- en IPV6, bien qu'en règle générale la connexion directe soit désactivée, elle peut être autorisée au cas par cas.
- penser à remplacer `machine_physique` par un nom de machine physique existante de l'infrastructure de Libre en Communs
- penser à remplacer le `user` dans `machine_physique-proxy.libre-en-communs.org` par `comchalec`
### Configuration SSH client (dans `~/.ssh/config`)
Une personne souhaitant se connecter à une machine virtuelle doit configurer son
client SSH, généralement dans le fichier `~/.ssh/config`.
La configuration met en jeu un proxy, obligatoire pour IPv4 (en raison du partage
d'adresse IP et du port unique) et servant de sécurité supplémentaire avec IPv6.
Le proxy peut être n'importe quelle machine physique de l'infrastructure, le mieux
étant d'utiliser la machine qui hypervise la machine virtuelle visée, mais ce n'est
pas nécessaire. Une machine d'un site différent peut aussi être utilisée (mais cela
ajoute de la latence).
La configuration suivante permet l'accès à toute machine virtuelle des domaines
`a-lec.org` et `chalec.org` :
```
host <machine_physique>-proxy.libre-en-communs.org
Hostname <machine_physique>.libre-en-communs.org
User cominfra
Port <port>
SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
host *.a-lec.org
User admin666
Port 22
ProxyJump <machine_physique>-proxy.libre-en-communs.org
SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
host *.chalec.org
User admin666
Port 22
ProxyJump <machine_physique>-proxy.libre-en-communs.org
SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
```
Pour fixer les variables Git directement dans la conf, il est possibe d'ajouter
un `SetEnv` avant `SendEnv` :
```
SetEnv GIT_AUTHOR_NAME="<nom>" GIT_AUTHOR_EMAIL="<courriel>"
```
### Procédure de connexion avec config dans ~/.ssh/config
Il suffit d'utiliser `ssh <nom de vm>` pour accéder à la machine virtuelle.
### Procédure de connexion sans config
Il est également possible d'utiliser :
```
ssh -i 'CLE_PRIV' -J cominfra@machine_physique.libre-en-communs.org:<port> admin666@<nom de vm> -p 22
```