Heute möchten wir euch 3 kleine, aber wirkungsvolle Tipps für das tägliche Arbeiten an entfernten Computern geben.
In Zeiten wo Administratoren für immer mehr, und vor Allem, immer weiter entferntere Systeme zuständig sind, haben sich im Unix bereich 2 Tools heraus kristallisiert, die für die tägliche Arbeit unabdingbar sind:
screen und
ssh.
- Shared SSH Sessions
Des öfteren arbeitet man mit mehreren Remote Shells auf einem Server. Gerade wenn man am testen, konfigurieren oder debuggen auf einem Server ist, ist dies meist unabdingbar. Um dann auf dem Server durch die angehäuften Shells nicht zuviel Speicher zu nutzen (es kann ja auch mal sein, man arbeitet auf einer Appliance oder einem Router mit etwas weniger Speicher), bietet SSH die Möglichkeit sogenannte Master Verbindungen aufzubauen. Diese sind in der Lage, ihre Verbindung mit mehreren Slave Verbindungen zu teilen. Dazu wird auf dem lokalen System ein Master Socket angelegt, über den die Slave Verbindungen zugreifen können. Daraus resultieren 2 Vorteile:
- auf dem entfernten System wird durch die "wiederverwendung" der schon bestehenden Verbindung, Speicher gespart
- die Slave Verbindungen müssen sich am entfernten System nicht mehr authentifizieren (sehr hilfreich bei gescripteten Sachen)
Wie legt man nun eine Master Verbindung an? Ganz einfach, nämlich so:ssh -M -o ControlPath=/Pfad/zum/Master/Socket user@host
Dabei steht ide Option -M für Master und unter der Option -o ControlPath=/Pfad/zum/Master/Socket wird der Pfad zum Kontroll Socket für die Slave Verbindungen angegeben. Der Socket wird dabei unter den jeweiligen Benutzer mit Lese- und Schreibrechten angelegt (0600), ist also für andere Nutzer (ausser natürlich root) nicht les- und schreibbar. Die Slave Verbindungen startet man dann ganz einfach via ssh -S /Pfad/zum/Master/Socket user@host
- Screen lock
Ist man einmal via SSH auf einem entferntem System angemeldet, ist nichts schlimmer als wenn diese Session durch Verbindungsfehler, sei es die schlechte Verbindung (z.B. nach China) oder das versehentlich geschlossene Fenster, wieder beendet werden. Für solche (und noch viele andere) Zwecke gibt es screen. Screen erstellt einen virtuellen Terminal, der losgelöst vom SSH Prozess auch dann weiter existiert, wenn dieser durch irgendwelche Gründe beendet wird. Hat man jetzt via screen einen Screen gestartet, kann die Verbindung wegbrechen wie sie möchte. Nach einer Wiederverbindung auf das System kann man sich ganz einfach via screen -r den Screen zurück holen und da weiter machen wo man aufgehört hat. Was aber wenn man sensible Daten auf seinem Screen verfolgt (z.B. Log Ausgaben) oder dieser beim Verlassen des Arbeitsplatzes vor fremden Zugriff geschützt werden soll? Auch dafür gibt es eine Lösung: In der laufenden Sceen Session aktiviert man mit der Tastenkombination (strg+A) + (strg+x) (unter Debian, bei anderen Systemen hilft ein Blick in die Hilfe, zu erreichen via (strg+a) + :help + enter) den Screen Lock. Danach ist der Screen nur noch über das Login zu erreichen. Je nach dem was für ein Lock Programm oder eine Version von Screen verwendet, kann man den Screen mit dem Nutzer Passwort oder einem selbst gewählten Passwort entsperren.
- Geteilte Screen Session
Nun soll es ja auch vorkommen, dass mehr als ein Adminstrator für die Systempflege zuständig ist und man gemeinsam auf einem System an einer Konfiguration arbeitet oder einen Fehler debuged. Aber auch dafür gibt es mit Screen eine Lösung, die vor allem dann sehr toll ist, wenn man gemeinsam Dateien editieren möchte oder jemanden etwas erklären möchte. In diesem Post werde ich euch die geteilte Screen Session mit gleichen Nutzern erklären. Es gibt auch Möglichkeiten mit unterschiedlichen Nutzern eine geteilte Screen Session zu machen, z.B. root als ausführende Kraft und ein normaler Nutzer der nur einen Read-Only Zugriff auf den Screen hat. Nun aber zu ersterer Variante mit dem gleichen Nutzer. Als erstes startet man einen Screen mit einem angepassten Socketnamen via screen -S Socketname
Um den Screen jetzt Multinutzer fähig zu machen, aktiviert man mit der Tastenkombination (strg+a) + :multiuser on diese Funktionalität. Mit dem zweiten Benutzer kann man jetzt via screen -x Socketname
auf die Session zugreifen. Und simsalabim, schreibt der eine Nutzer sieht es der andere Nutzer sofort.
Ich hoffe diese Tipps erleichtern euch die tägliche Arbeit auf der Shell..
[Tipps und Tricks] Remote Shell ein mal eins http://ff.im/-9jGae
Aufgenommen: Oct 06, 13:58