Connexions distantes
1. ssh
La commande ssh permet d’accéder à un shell sur une machine distante.
$ hostname
ordi1
$ whoami
jaclin
$ ssh jc@ordi2
jc@ordi2's password:
Last login: Sat Mar 22 11:01:06 2025 from 192.168.50.80
$ hostname
ordi2
$ whoami
jc
$ ^D
$ hostname
ordi1
$ whoami
jaclin
2. rsync
rsync est une commande sophistiquée (grace à ses nombreuses options) de copie de fichiers entre 2 équipements.
Elle utilise le protocole ssh.
Exemples :
$ rsync ~/.bashrc jc@ordi2:/tmp
$ rsync -r ~/Documents jc@ordi2:documents_originaux/
$ rsync jc@ordi2:Documents/mon_fichier.txt .
$ rsync -a jc@ordi2:documents_originaux .
3. Authentification par clés
L’authentification par clés peut se subsister à l’authentification par login/mot de passe d’une connexion ssh. Cela évite donc d’avoir à entrer un mot de passe à la connexion.
3.1. Principe théorique
Tout repose sur un jeu de 2 clés dépendantes l’une de l’autre (une clé est simplement un grand entier) dont les propriétés sont telles que :
-
tout ce qui est chiffré avec l’une des 2 clés est déchiffrable avec l’autre (et seulement avec elle),
-
il est impossible de retrouver l’une des 2 clés à partir de l’autre.
Le possesseur des 2 clés choisit l’une d’elle comme étant publique (donc diffusable à tout le monde), et l’autre comme privée (qui doit rester secrète, seul son propriétaire doit la connaitre).
Avec cela :
-
quiconque réussissant à déchiffrer un message chiffré avec une clé publique est sûr que c’est le propriétaire de cette clé publique qui en est l’auteur (puisque lui seul a pu le chiffrer avec sa clé privée),
-
et inversement, quiconque voulant rédiger un message confidentiel à destination d’un correspondant chiffre le message avec la clé publique du correspondant (car seul le correspondant pourra le déchiffrer avec sa clé privée).
3.2. En pratique
Pour pouvoir s’authentifier par clés, il faut :
-
générer le bi-cle sur le poste de travail,
-
conserver la clé privée localement, bien protégée de la lecture (et de l’écriture),
-
déposer la clé publique sur chaque équipement sur lequel on veut pouvoir se connecter sans mot de passe.
3.2.1. Générer le bi-clé sur le poste de travail
ordi1$ ll ~/.ssh
ls: impossible d'accéder à '~/.ssh': Aucun fichier ou dossier de ce nom
donc pas de répertoire ~/.ssh sur l’équipement local.
ordi1$ ssh-keygen
Generating public/private ed25519 key pair.
Enter passphrase for "~/.ssh/id_rsa" (empty for no passphrase):
Your identification has been saved in ~/.ssh/id_rsa
Your public key has been saved in ~/.ssh/id_rsa.pub
ordi1 $ ll ~/.ssh
total 32
-rw-------. 1 jaclin jaclin 1675 31 oct. 21:46 id_rsa
-rw-r--r--. 1 jaclin jaclin 395 31 oct. 21:46 id_rsa.pub
3.2.2. Déposer la clé publique sur un équipement distant
ordi1$ ssh jc@ordi2 ls -l ~/.ssh
jc@ordi2's password:
ls: impossible d'accéder à '/home/jc/.ssh': Aucun fichier ou dossier de ce nom
donc pas de répertoire ~/.ssh sur l’équipement distant.
ordi1$ ssh-copy-id jc@ordi2
jc@ordi2's password:
ordi2$ ls -l .ssh
total 4
-rw-------. 1 jc jc 395 29 mai 10:55 authorized_keys
Maintenant, l’utilisateur peut se connecter, depuis son poste de travail, à la machine distante, sans fournir de mot de passe.
ordi1$ ssh jc@ordi2 hostname
ordi2