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:
1ssh-keygen -t ed25519 -C "prenom.nom@exemple.com"2ssh-add ~/.ssh/id_ed25519 # charge la clé dans l'agentDéclarez vos hôtes dans ~/.ssh/config pour des commandes concises et stables:
1Host prod-api2 HostName 203.0.113.103 User deploy4 IdentityFile ~/.ssh/id_ed255195 ProxyJump bastionVous 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:
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:
1ssh -L 5433:localhost:5432 prod-api # accès local à la base distanteSé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)
#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.