# 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 -proxy.libre-en-communs.org Hostname .libre-en-communs.org User cominfra Port SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL host *.a-lec.org User admin666 Port 22 ProxyJump -proxy.libre-en-communs.org SendEnv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL host *.chalec.org User admin666 Port 22 ProxyJump -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="" GIT_AUTHOR_EMAIL="" ``` ### Procédure de connexion avec config dans ~/.ssh/config Il suffit d'utiliser `ssh ` 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: admin666@ -p 22 ```