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'agent
Dé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 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:
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 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)
#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
.