Jedem Server einen eindeutigen Namen geben
Ein einheitliches Alias-Schema spart Zeit und verringert Fehler. Hinterlegen Sie in ~/.ssh/config Adresse, Benutzer, Port und Schlüssel jedes Servers unter einem Namen. Nehmen Sie Rolle und Umgebung in den Namen auf, damit Produktionssysteme auf einen Blick erkennbar sind. Optionen, die Sie für einen bestimmten Host nicht setzen, werden aus dem Block Host * übernommen.
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 adminDen falschen Server vermeiden
Bei der Arbeit auf mehreren Servern landet ein Befehl leicht im falschen Fenster. Zeigen Sie den Hostnamen im Prompt an, verwenden Sie für Produktionssysteme eine andere Prompt-Farbe und prüfen Sie vor jedem destruktiven Schritt, wo Sie sich befinden. Heben Sie die gefährlichsten Schritte für einen Moment auf, in dem nur ein Terminal geöffnet ist.
hostname -f; whoami; pwdLange Aufgaben weiterlaufen lassen
Ein Verbindungsabbruch beendet normalerweise die Shell und die darin laufenden Befehle. Starten Sie lange Aufgaben auf dem Server in tmux oder screen, damit sie weiterlaufen und Sie sich wieder damit verbinden können. Client-Keepalive erkennt eine ausgefallene Verbindung früher, hält die Aufgabe aber nicht selbst am Laufen.
tmux new -s upgrade
tmux attach -t upgradeWissen, welche Server antworten
Prüfen Sie vor der Arbeit auf mehreren Servern, ob deren SSH-Ports antworten. Ein geschlossener Port bedeutet nicht immer, dass ein Server ausgefallen ist: Der Dienst könnte beendet sein oder eine Firewall Ihr Netzwerk blockieren.
for host in prod-web-1 test-web-1; do
ssh -o ConnectTimeout=5 "$host" 'hostname; uptime' || echo "$host: no connection"
doneMehrere Server in CH-J Server Manager
Serverprofile werden in einem lokalen verschlüsselten Tresor gespeichert, und mehrere SSH-Sitzungen können gleichzeitig geöffnet sein. In Alpha 0.1.1 lassen sich zwei Terminals nebeneinander oder übereinander anordnen, auf einem oder zwei Servern. Das Ausblenden eines Terminals beendet seine Sitzung nicht. Module verwenden eine einzelne Verbindung automatisch und fragen nach, wenn mehrere geöffnet sind. Ein Modul wechselt somit nie selbstständig auf einen anderen Server. Das Sperren des Tresors trennt SSH-Sitzungen. Beenden Sie laufende Arbeiten daher vorher oder lassen Sie sie in tmux laufen.
Erreichbarkeit auf einen Blick
In Alpha 0.1.1 prüft die Erreichbarkeitsüberwachung gespeicherte Server im Hintergrund über eine TCP-Verbindung zum SSH-Port, standardmäßig alle 12 Sekunden und ohne Anmeldung. Offline bedeutet dann, dass der SSH-Port von Ihrem Netzwerk aus nicht erreichbar ist; der Server selbst kann weiterhin laufen.