CH-J Server Managergestion de serveur sur SSH
Menu
Tous les guides et articles →

Comment administrer plusieurs serveurs SSH à la fois

Organisez plusieurs serveurs avec des alias SSH et des terminaux côte à côte, et évitez d’exécuter une commande sur le mauvais serveur.

Donner un nom clair à chaque serveur

Une convention cohérente pour les alias fait gagner du temps et réduit les erreurs. Dans ~/.ssh/config, regroupez l’adresse, l’utilisateur, le port et la clé de chaque serveur sous un nom unique. Incluez le rôle et l’environnement dans ce nom pour reconnaître la production d’un coup d’œil. Les options non définies pour un hôte donné sont reprises du bloc Host *.

Host prod-web-1
    HostName 203.0.113.10
    User admin
    IdentityFile ~/.ssh/id_ed25519_prod
    IdentitiesOnly yes

Host test-web-1
    HostName 203.0.113.20
    User admin

Éviter le mauvais serveur

Lorsqu’on travaille sur plusieurs serveurs, il est facile de saisir une commande dans la mauvaise fenêtre. Affichez le nom d’hôte dans l’invite, utilisez une couleur d’invite différente en production et vérifiez où vous êtes avant toute action destructive. Réservez les étapes les plus dangereuses à un moment où un seul terminal est ouvert.

hostname -f; whoami; pwd

Maintenir les tâches longues en cours d’exécution

Une perte de connexion met normalement fin au shell et aux commandes qui s’y exécutent. Lancez les tâches longues dans tmux ou screen sur le serveur pour qu’elles continuent et que vous puissiez vous y reconnecter. Le keepalive du client détecte plus vite une connexion coupée, mais ne maintient pas à lui seul la tâche en cours d’exécution.

tmux new -s upgrade
tmux attach -t upgrade

Savoir quels serveurs répondent

Avant de commencer à travailler sur plusieurs serveurs, vérifiez que leurs ports SSH répondent. Un port fermé ne signifie pas toujours qu’un serveur est arrêté : le service peut s’être arrêté ou un pare-feu peut bloquer votre réseau.

for host in prod-web-1 test-web-1; do
    ssh -o ConnectTimeout=5 "$host" 'hostname; uptime' || echo "$host: no connection"
done

Plusieurs serveurs dans CH-J Server Manager

Les profils des serveurs sont stockés dans un coffre-fort local chiffré, et plusieurs sessions SSH peuvent être ouvertes à la fois. Dans Alpha 0.1.1, deux terminaux sont disposés côte à côte ou l’un au-dessus de l’autre, sur un ou deux serveurs. Masquer un terminal ne ferme pas sa session. Les modules utilisent automatiquement la connexion s’il n’y en a qu’une et demandent laquelle utiliser quand plusieurs sont ouvertes ; un module ne passe donc jamais de lui-même à un autre serveur. Verrouiller le coffre-fort déconnecte les sessions SSH : terminez d’abord les tâches en cours ou maintenez-les dans tmux.

La disponibilité d’un coup d’œil

Dans Alpha 0.1.1, le moniteur de disponibilité vérifie les serveurs enregistrés en arrière-plan par une connexion TCP au port SSH, par défaut toutes les 12 secondes, sans ouvrir de session. L’état hors ligne signifie alors que le port SSH est inaccessible depuis votre réseau ; le serveur lui-même peut toujours fonctionner.

Documentation détaillée

OpenSSH: ssh_config →

Déverrouillage biométrique et sécurité →