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

  • Local -L a:b:c: un port local vers une cible côté serveur (accès à un service privé).
  • À l’inverse, -R a:b:c expose un port côté serveur qui redirige vers votre machine (attention à la sécurité).
  • Socks -D 1080: proxy dynamique pour du trafic TCP (ex.: tests réseau).

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.