Aller au contenu principal

Réseau et SSH

Progression

#Réseau et SSH

SSH est votre porte d’entrée vers une machine distante. Avec une paire de clés, vous vous authentifiez sans mot de passe et pouvez copier des fichiers, exécuter des commandes, voire créer des tunnels.

#Clés et configuration

Créez une clé moderne et protégez‑la par une passphrase:

bashbash
1ssh-keygen -t ed25519 -C "prenom.nom@exemple.com"2ssh-add ~/.ssh/id_ed25519   # charge la clé dans l'agent

Déclarez vos hôtes dans ~/.ssh/config pour des commandes concises et stables:

texttext
1Host prod-api2  HostName 203.0.113.103  User deploy4  IdentityFile ~/.ssh/id_ed255195  ProxyJump bastion

Vous pourrez alors simplement taper ssh prod-api.

#Transférer et synchroniser

scp copie de façon ponctuelle. Pour des répertoires ou des gros volumes, préférez rsync qui reprend là où il s’est arrêté et ne recopie que les différences:

bashbash
1rsync -azP --delete site/ prod-api:/var/www/site/

#Tunneler un service

Si un service n’est pas exposé, créez un tunnel local qui redirige un port de votre machine vers la cible distante:

bashbash
1ssh -L 5433:localhost:5432 prod-api   # accès local à la base distante

Sécurité minimale: désactivez l’authentification par mot de passe sur le serveur quand les clés sont en place, surveillez les journaux, révisez périodiquement les accès, et changez les clés compromises.

#Diagramme: poignée de main SSH (simplifiée)

Client
Serveur
1. Hello + algos supportés
2. Hello + choix des algos
3. Clé hôte (signature) → vérif known_hosts
4. Échange de clés (ECDH); session chiffrée
5. Auth: clé publique / password / agent
6. OK → ouverture de canaux (shell, port‑forward)

#Port‑forwardings courants

Le transfert de port local (option -L) permet de rediriger un port de votre machine vers une cible accessible depuis le serveur distant, ce qui est idéal pour accéder à des services privés comme une base de données.

À l'inverse, le transfert de port distant (option -R) expose un port du serveur qui redirige le trafic vers votre machine locale, une fonctionnalité puissante mais à utiliser avec prudence pour des raisons de sécurité. Enfin, l'option -D permet de créer un proxy SOCKS dynamique, transformant votre connexion SSH en un tunnel pour tout trafic TCP, très utile pour des tests réseau ou contourner des restrictions.

Mini‑exercice: sécurisez un accès Postgres privé via ssh -L 5433:localhost:5432 bastion@prod puis connectez‑vous sur localhost:5433. Ajoutez une entrée Host dédiée dans ~/.ssh/config.