Opera
est notre passerelle SSH, appelé également un bastion.
C’est l’unique machine accessible depuis l’extérieur. Voici les différentes procédures possibles pour se connecter à votre machine depuis l’extérieur (à la maison, en déplacement, etc). N’oubliez pas de remplacer le nom DNS opera
par son adresse IP 193.52.78.45
car son nom DNS n’est pas connu hors du réseau interne.
L’idée principale est de créer un environnement de travail personnel, en déplacement, à la maison, qui soit le plus fonctionnel possible.
Il est fortement découragé d’utiliser opera
comme une machine de copie de fichiers (i.e, copier des données de votre machine vers opera
, puis de opera
vers votre machine extérieure, ou l’inverse). opera
n’a pas du tout été conçue pour ce type d’utilisation (partition /home de 50Go).
Voir plus bas les services disponibles pour transiter des fichiers.
Pour prévenir de potentiels abus, un système de quota a été mis en place.
Chaque utilisateur a une limite soft de 1Go et une limite hard de 1.5Go. Si vous êtes entre les 2 limites, vous pouvez continuer d’écrire sur le disque mais vous avez une semaine pour repasser en dessous de la limite soft. Au delà, vous ne pourrez plus écrire du tout sur le disque. Si vous dépassez la limite hard, vous ne pouvez plus écrire avec effet immédiat.
Pour les commandes qui suivent, vous devez remplacer
user_name
par votre nom d’utilisateur qui est votre nom de famille.
Plutôt que de s’identifier par mot de passe lors d’une connexion SSH, et retaper à chaque fois ce dernier (en se trompant 1 fois sur 3), il est possible de passer par un mécanisme de clé publique/privée pour pouvoir se connecter sur une machine distante sans avoir à taper de mot de passe.
Se créer une identité SSH:
cretin@pc_maison:~$ ssh-keygen
Accepter les valeurs par défaut pour toutes les questions posées à la suite de cette commande en tapant sur la touche Entrée.
Cette commande a créé 2 fichiers dans votre répertoire personnel:
Une clé privée: ~/.ssh/id_rsa
Une clé publique: ~/.ssh/id_rsa.pub
La clé privée doit toujours rester sur votre machine, elle doit en aucun cas être copiée ou dupliquée.
C’est la clé publique qui va être déployée et qui servira de serrure. Pour ouvrir la serrure, vous l’aurez compris,
SSH utilisera votre clé privée.
Par exemple si mon nom d’utilisateur est cretin
, ma machine distante est chili
, et je souhaite accéder à ma machine depuis chez moi, il suffit de modifier votre fichier ~/.ssh/config
afin d’entrer les hôtes et méthodes de connexion souhaités :
Host opera
HostName 193.52.78.45
User cretin
Host chili_via_proxy
Hostname chili
ProxyJump opera
User cretin
J’ai défini l’hôte opera
qui est la passerelle SSH du labo, avec l’adresse IP correspondante.
Puis un autre hôte que j’ai appelé chili_via_proxy
(vous pouvez l’appeler comme vous voulez)
qui défini le nom et la méthode de connexion à la machine distante chili
.
Vous pouvez définir autant d’hôtes que vous voulez à la suite.
Pensez à changer le nom d’utilisateur et le nom de la machine distante !
Maintenant que nous avons une identité SSH sur notre machine personnelle à la maison et défini la/les machines distantes, nous pouvons déployer notre clé publique dessus afin de ne pas avoir à taper notre mot de passe.
# Attention, le nom "opera" peut être utilisé ici car l'hôte a été défini dans le fichier de configuration ~/.ssh/config
# sinon il faudrait utiliser l'adresse ip 193.52.78.45
cretin@pc_maison:~$ ssh-copy-id cretin@opera
Le système vous demandera votre mot de passe une fois afin de copier l’identité.
Identifiants par défaut, à modifier suite à la première connexion:
Login = nom de famille
Mot de passe = nom de famille (ou mot de passe fourni au préalable)
Si tout s’est bien passé vous devriez avoir une sortie de ce style:
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
cretin@193.52.219.45's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'opera'"
and check to make sure that only the key(s) you wanted were added.
Maintenant, si vous réessayez de vous connecter à opera, vous passerez sans avoir à taper votre mot de passe !
Il faut faire la même chose pour la machine distante:
cretin@pc_maison:~$ ssh-copy-id cretin@chili_via_proxy
Et voilà ! Vous atterrirez directement sur votre machine au labo sans taper de mot de passe !
Vous êtes sur votre machine chez vous et voulez transférer de la machine distante vers votre machine locale :
# Pour un fichier
$ scp user_name@chili_via_proxy:/chemin/vers/fichier/distant /chemin/vers/destination
# Pour un dossier (récursif)
$ scp -r user_name@chili_via_proxy:/chemin/vers/dossier(s)/distant(s) /chemin/vers/destination
Vous êtes sur votre machine chez vous et voulez transférer de votre machine vers la machine distante :
# Pour un fichier
$ scp /chemin/vers/fichier/local user_name@chili_via_proxy:/chemin/vers/destination`
# Pour un dossier (récursif)
$ scp -r /chemin/vers/dossier(s)/local user_name@chili_via_proxy:/chemin/vers/destination
Le système SSHFS est un système de fichiers client, basé sur l’utilitaire FUSE, permettant de monter des répertoires distants, au travers d’une connexion SSH.
Si vous voulez par exemple avoir votre home distant directement accessible sur votre ordinateur chez vous pour travailler plus facilement, vous pouvez utiliser SSHFS afin de monter ce répertoire chez vous.
Pour monter un dossier distant:
Créer un point d’encrage sur votre PC personnel:
$ mkdir /chemin/vers/point/ancrage/local
Lancer la commande de montage avec les options suivantes -o ServerAliveInterval=15
et -o reconnect
pour éviter que la connection ne se coupe de manière inopinée:
$ sshfs -o ServerAliveInterval=15 -o reconnect user_name@chili_via_proxy:/chemin/vers/dossier/destination /chemin/vers/point/ancrage/local
Pour démonter le dossier:
fusermount3 -u mountpoint # Linux
umount mountpoint # macOS, FreeBSD