Statt sich beim Zugriff auf entfernte Rechner mit den kryptischen Kommandos der Secure Shell herumzuschlagen, profitieren Sie bei PAC von den Komfortfunktionen des eines grafischen Verbindungsmanagers.
Wer ein ganzes Bündel an SSH-Verbindungen verwaltet, braucht einen kühlen Kopf beim Einrichten der Konfiguration: Was bei ein oder zwei Systemen leicht fällt, gerät spätestens bei einem mittelgroßen Netz zur Geduldsprobe. Mit PAC steht dem leidgeplagten Benutzer ein praktisches Werkzeug zur Seite, das ihm den Alltag erleichtert. Der volle Name der Anwendung, die sich als Alternative zu Größen wie Putty oder SecureCRT versteht, lautet übrigens “Perl Auto Connector”.
Ganz gleich ob manuell oder per Repository (siehe Kasten “Installation”) – nach erfolgreicher Installation starten Sie das unter der GPLv3 lizenzierte PAC über das entsprechende Symbol in der Ubuntu-Dash (Abbildung 1). Beim ersten Programmstart legt die Software ein Verzeichnis namens ~/.pac an, um die Konfiguration zu speichern, und ein integrierter Update-Mechanismus prüft, ob eine neue Programmversion vorhanden ist (Abbildung 2).

Abbildung 1: Die Erde mit Netzwerkbuchse – das Symbol von PAC.

Abbildung 2: Die Software benachrichtigt über neue Versionen und die Änderungen, die mit dieser einhergehen.
Für den Fall, dass Sie das Getdeb.net-Repository nutzen, können Sie den Hinweis getrost ignorieren, denn das Update sollte jeweils kurz nach Erscheinen direkt über den Paketmanager zur Verfügung stehen. Im Fall des Testsystems erschien unmittelbar vor Redaktionsschluss die neue Version 3.4, deren Änderungen gegenüber des von uns getesteten PAC 3.3.10 aus Zeitgründen nicht mehr in den Artikel einflossen.
Installation
Auf dem Ubuntu 11.10 unseres Testsystems steht zwar kein Canonical-Paket für PAC bereit, doch die Sourceforge-Seite des Programms [1] offeriert eine passende Datei im DEB-Format. Diese installieren Sie entweder durch Doppelklick mittels des Paketmanagers oder auf der Kommandozeile über sudo dpkg -i pac-3.3.10.2-all.deb. Die Homepage des Autors [2] listet zudem ein getdeb.net-Repository auf, das Sie unter der aktuellen Ubuntu-Version durch die Zeile deb http://archive.getdeb.net/ubuntu oneiric-getdeb apps in der /etc/apt/sources.list einbinden und mittels sudo apt-get update && sudo apt-get install pac installieren.
Oberflächliches
Das Programmfenster von PAC präsentiert sich zweigeteilt: Auf der linken Seite finden Sie eine Liste aller eingerichteten Verbindungen, und auf der rechten Seite der dazugehörige Arbeitsbereich, dessen Inhalte die Applikation ähnlich wie im Browser in Registerkarten darstellt. Beim ersten Start herrscht naturgemäß noch gähnende Leere (Abbildung 3), fehlen PAC doch die entsprechenden Daten.
Diese legen Sie hierarchisch als Baumstruktur als Nodes ab, wobei die Software es erlaubt, zwecks besserer Übersicht die Verbindungsdaten in Gruppen und Untergruppen zu ordnen, ähnlich den Lesezeichen im Browser. Dazu klicken Sie jeweils mit der rechten Maustaste auf den übergeordneten Eintrag, beziehungsweise auf AVAILABLE CONNECTIONS für die erste Ebene, wählen den Menüpunkt Add Group und vergeben den gewünschten Namen in der daraufhin erscheinenden Dialogbox.
Den eigentlichen Knoten legen Sie im nächsten Schritt an, indem Sie die gewünschte Gruppe anklicken, und PAC anschließend über den Eintrag Add Connection den Dialog aufrufen, um das Programm mit den entsprechenden Daten füttern. Nach der Wahl eines aussagekräftigen Namens (siehe Kasten “Titel-Anzeige”) öffnet sich der Verbindungsdialog mit zahlreichen Optionen, die auf der linken Fensterseite in neun verschiedene Kategorien gegliedert sind (Abbildung 4).

Abbildung 4: Neun auf einen Streich: Zahlreiche Optionen helfen bei der Einrichtung der Verbindungen.
Titel-Anzeige
PAC kennt drei unterschiedlichen Stellen, um Verbindungen zu benennen, was anfangs etwas verwirrt. Beim Anlegen eines Eintrags fragt ein Dialog nach dessen Namen sowie dem Titel. Ersteres bezeichnet dabei die Schreibweise in der Liste links im Programmfenster, während Letzteres sich in der Titelzeile und im Tab wiederfindet. Der eigentliche Hostname, also der DNS-Name oder die IP-Adresse des Ziel-Servers, bleibt von diesen beiden frei wählbaren Bezeichnern unbeeinflusst.
Aus dem Vollen schöpfen
Unter Connection legen Sie die grundsätzlichen Optionen einer Verbindung fest, wie etwa Hostname und Port. Zusätzlich zu SSH stehen dabei eine Vielzahl weiterer Protokolle bereit, darunter SFTP und FTP (beide allerdings ohne grafische Oberfläche), Telnet (siehe auch Kasten “Gefährliches Erbe”) sowie die Verbindung zu Windows-Systemen via RDP oder plattformübergreifend per VNC. Der Schwerpunkt liegt im Folgenden allerdings auf der SSH-Komponente, da diese im Alltag am häufigsten vorkommt.
Gefährliches Erbe
Theoretisch unterstützt PAC den Telnet-Standard, ein lange Zeit genutztes Protokoll. Es kommt zwar nach wie vor auf zahlreichen preisgünstigen Geräten zum Einsatz, vor allem auf Heim-Routern. Aus Sicherheitsgründen empfiehlt es sich aber, es nicht mehr nutzen: Telnet überträgt sämtliche Daten und Passwörter im Klartext, sodass ein Eindringling sie leicht mitlesen kann.
Mittels Launch at PAC startup sorgen Sie dafür, dass das Programm die Verbindung bei jedem Start automatisch öffnet (was im Test jedoch nicht funktionierte). Reconnect on disconnection baut die Sitzung automatisch wieder auf, falls sie einmal unerwartet zusammenbricht. Das führt dann allerdings auch dazu, dass PAC sich automatisch sofort wieder mit einem Remote-Rechner verbindet, dessen Konsole Sie gerade mit exit verlassen haben – um SSH endgültig zu beenden, müssen Sie die entsprechende Registerkarte komplett schließen.
Zum Anmelden greifen Sie entweder auf das klassischen Login mittels Benutzername und Passwort zurück oder nutzen eine zertifikatsbasierte Authentifizierung mittels Schlüsseldatei (Public-Key-Verfahren). In beiden Fällen hinterlegen Sie den Benutzernamen relativ risikofrei im Programm, um sich das lästige Eintippen zu ersparen.
Mit größter Vorsicht zu genießen ist dagegen das Angebot von PAC, auch das Kennworts zum Anmelden am entfernten Rechner beziehungsweise jenes zum Entsperren der Schlüsseldatei zu hinterlegen: Das erhöht zwar den Komfort, gerade im Zusammenspiel mit dem automatischen Wiederverbinden, es birgt aber große Risiken, da es sämtliche Schutzmechanismen aushebelt. Sinnvoller erscheint es da, mittels <<ASK_PASS>> explizit zur Eingabe aufzufordern. Im Test stellte sich das Problem jedoch als ein rein akademisches heraus: Das Abspeichern des Kennworts funktionierte ohnehin nicht.
Als nützlich erweist sich die Funktion Prepend command, mit der Sie dem eigentlichen Aufruf der Verbindung zusätzliche lokale Befehle voranstellen. So führt die Eingabe von screen beispielsweise dazu, dass die SSH-Verbindung in einer Screen-Sitzung startet, die Sie dann mit mehreren Anwendern teilen oder beliebig unterbrechen und später fortsetzen [3].
Bei der Fehlerdiagnose hilft es, mittels Auto save Session logs ein Protokoll der Sitzung in einem Verzeichnis abzulegen, wobei Sie die Zahl der vorgehaltenen Log-Dateien mittels Files to save definieren. Im Test funktionierte das Mitschreiben allerdings nur für solche Sitzungen problemlos, die ohne Farbausgabe auskommen – PAC protokolliert zwar die Steuercodes mit, herkömmliche Editoren werten diese aber nicht aus.
Über die Funktion Programatically send string senden Sie in definierten Abständen bestimmte Befehle an das entfernte Terminal. Hier dürften aber oft serverseitige Tools wie Watch oder Cron das bessere Mittel der Wahl sein.
Blick in den Tunnel
SSH eignet sich nicht nur zum Bereitstellen einer Konsole auf einem entfernten Rechner, sondern beherrscht auch das Tunneln von Verbindungen, worauf beispielsweise Anwendungen wie X2go [4] aufbauen. Damit leiten Sie bestimmte Verbindungen weiter, um Dienste der beteiligten Maschinen oder der von ihnen aus erreichbaren Systeme zugänglich zu machen. Der große Vorteil: Sie benötigen dazu jeweils nur den für SSH genutzten Port, lokale Firewall-Restriktionen spielen kaum eine Rolle. PAC bietet in der zweiten Kategorie namens SSH Options die Möglichkeit, das Tunneling zu konfigurieren, wobei drei Varianten zur Auswahl stehen, die Sie miteinander kombinieren dürfen.
Beim Local Port Forwarding öffnen Sie auf der lokalen Maschine einen Port, der auf einen Port der Gegenseite verweist. Das Remote Port Forwarding geht den genau umgekehrten Weg und stellt lokale Dienste für die Gegenstelle bereit. Um beliebige ausgehende Verbindungen durchzuschleifen, steht zudem noch ein SOCKS-Proxy bereit, über den Sie beispielsweise den lokalen Browser umleiten könnten. Dieses Verfahren eignet sich zum Umgehen von Firewalls, etwa auf Messen, in der Firma oder in Hotels.
Das Beispiel aus Abbildung 5 verdeutlicht die Funktionsweise: Die gezeigte Konfiguration öffnet auf der lokalen Maschine den Port 10000, Verbindungen dorthin leitet sie via SSH auf denselben Port am Ziel-Server weiter. Die zweite Zeile geht noch einen Schritt weiter und öffnet einen lokalen Port 20000, der auf Port 80 des Hosts intranet.meinefirma der Gegenseite verweist. Mit dieser Technik bauen Sie sich eine Art Mini-VPN auf, über das Sie eigentlich nur intern zugängliche Systeme per SSH-Verbindung aufrufen, oder beispielsweise dem Office-Paket am entfernten Server Zugang auf Ihren lokalen Netzdrucker geben.
Hier konfigurieren Sie weitere Details zur Verbindung, wie beispielsweise die zu verwendende SSH-Version, wobei alle modernen Systeme automatisch die sichere Version 2 unterstützen. Anwender, die schon über einen IPv6-Zugang verfügen, stellen mittels IP Protocol ein, welches Protokoll die Sitzung verwenden soll. In der Regel genügt es, sowohl die SSH-Version als auch das IP-Protokoll auf der Standardeinstellung any zu belassen.
Zudem haben Sie die Möglichkeit, noch weitere SSH-Parameter anzugeben, die Sie beispielsweise der Manpage (man ssh_config) entnehmen. Vier häufig genutzte Parameter – das Weiterleiten von X11-Verbindungen, das Aktivieren der Kompression, das Weiterleiten lokaler Ports an das Zielsystem sowie das Agent-Forwarding [5] – stellt PAC direkt zum Anklicken bereit, die übrigen geben Sie als Freitext ein. Mittels -o "VerifyHostKeyDNS=yes" liest das Programm beispielsweise den Host-Fingerprint aus dem DNS aus [6].
Wie von Zauberhand
Die beiden nächsten Kategorien, Pre Exec und Post Exec, erleichtern in vielen Fällen die Arbeit: Mit ihnen legen Sie fest, welche lokalen Befehle PAC vor dem Aufbau und nach dem Ende der Verbindung ausführt (Abbildung 6). Auf diesem Weg setzen Sie beispielsweise Portknocking-Befehle [7] ab oder lassen bei Abbruch der Verbindung einen Sound erklingen.
Komfortabel ist zudem die Möglichkeit, vordefinierte Befehle als Makros für den lokalen Rechner und sowie den Server einzurichten. Diese führen Sie über das Kontextmenü in einer bestehenden Sitzung aus (Abbildung 7), um sich dadurch lästige Tipparbeit zu ersparen. Zum Schutz vor ungewollten Klicks schalten Sie über die Funktion Confirm noch eine Sicherheitsabfrage davor (Abbildung 8).
Abbildung 7: Makros im Kontextmenü sorgen für mehr Komfort, indem sie wiederkehrende Tipparbeit übernehmen.

Abbildung 8: Sicherheit geht vor – auf Wunsch fordert PAC Sie auf, eine Aktion nochmals zu bestätigen.
Zu guter Letzt stellen Sie in der Kategorie Terminal Options noch das Erscheinungsbild des Terminalfensters ein. Dabei passen Sie gegebenenfalls auch die Erkennungsmuster für Benutzername und Passwort an, sollte die automatische Anmeldung einmal nicht funktionieren. Um die Einstellungen zu schützen, speichern Sie sie zunächst durch einen Klick auf die entsprechende Schaltfläche ab. Dann wählen Sie im Kontextmenü Protect aus, was unbeabsichtigte Änderungen verhindert: Erst nach einem Klick auf Un-Protect lässt sich die Konfiguration wieder bearbeiten.
Formelsammlung
PAC unterstützt interaktive Elemente. Um beim Anmelden keinen Benutzernamen fest vorzugeben, sondern eine komfortable Auswahlliste einzublenden – ähnlich, wie dies beispielsweise Ubuntu beim Systemstart macht – klicken Sie mit der rechten Maustaste in das entsprechende Feld und wählen Interactive user choose from list.
Den nun erscheinenden Text passen Sie an Ihre Bedürfnisse an: Einer kurzen Beschreibung folgt eine durch die Pipe getrennte Auflistung aller Benutzernamen, beispielsweise <ASK:Bitte Benutzernamen auswählen|admin|root|floeff>. Zu Beginn der Sitzung dürfen Sie fortan komfortabel auswählen, mit welchem der genannten Benutzer-Accounts Sie sich anmelden (Abbildung 9).

Abbildung 9: PAC bietet über eine Auswahl eine vorkonfigurierte Liste von Benutzern für den entfernten SSH-Server an.
Für die einzelnen Felder stehen zudem Variablen bereit. Um zum Beispiel als Benutzername stets den Namen des lokal angemeldeten Nutzers zu verwenden, klicken Sie im Kontextmenü auf Environment variables… | <ENV:USER> oder tippen Letzteres direkt in das Feld ein. Neben den lokalen Umgebungsvariablen kennt PAC selbst globale und sitzungsbezogene Variablen.
Erstere stellen Sie in der Konfiguration mittels Preferences im Hauptfenster ein, letztere direkt in der Kategorie User Variables. Haben Sie zum Beispiel die erste Sitzungsvariable mit dem Namen des gewünschten Benutzers gefüllt, referenzieren Sie diesen im entsprechenden Feld mittels <V:0>.
Genauso definieren Sie bei Bedarf den jeweils gültigen Befehl fürs Portknocking in der globalen Variable namens knocking und referenzieren den Aufruf unter Pre Exec mittels <GV:knocking>. Der Vorteil: Ändert sich der Befehl, brauchen Sie ihn nur einmal in den Einstellungen zu aktualisieren, statt mühsam jede einzelne Sitzung zu bearbeiten.
Im Dutzend billiger
Nutzen Sie mehrere Server und haben daher mehrere Verbindungen eingerichtet, dann kommt ein Feature namens Cluster Connection zum Einsatz. Über die Schaltfläche Clusters Admin links unten im Programmfenster öffnen Sie einen Dialog (Abbildung 10), in dem Sie bereits bestehende Verbindungen einer Server-Gruppe zuordnen. Über den PCC, den Power Cluster Controller, steuern Sie diese Gruppe anschließend zentral.
Neben der Möglichkeit, Tastendrücke und ganze Befehle an alle Systeme gleichzeitig zu senden – beispielsweise ein beherztes sudo apt-get upgrade oder ein reboot – bringen Sie mittels Explode alle Systeme gleichzeitig auf den Schirm, um sich einen ersten Eindruck über deren Status zu verschaffen. Nutzer von Mac OS X kennen diese Ansicht unter dem Namen Exposé.
Schön gelöst hat der PAC-Entwickler die Möglichkeit, Verbindungen auf einem Tab zusammenzufassen: Dazu öffnen Sie zunächst zwei Sitzungen und melden sich an. Klicken Sie dann mit der rechten Maustaste auf den Titel und wählen Sie Split | Horizontally with TAB. Alternativ teilen Sie das Fenster vertikal.
PAC zeigt daraufhin beide Verbindungen in einem Fenster an (Abbildung 11), was sich beispielsweise zum Vergleichen von Ausgaben eignet. Tabs können Sie über das Kontextmenü zudem wieder auftrennen oder in eigene Fenster verlagern.
Fazit
Bei den hier gezeigten Funktionen macht PAC noch lange nicht Schluss, es hält noch mehr bereit. So hilft die integrierte Wake-on-LAN-Funktion dabei, komfortabel einzelne Rechner übers Netzwerk zu starten. Zu jeder Verbindung hinterlegen Sie zudem in einem Notizzettel alles Wissenswerte, beispielsweise die Änderungshistorie oder den Standort. Gut gefällt auch die Möglichkeit, zur besseren Illustration Screenshots zu speichern und Statistiken über die Verbindungen aufzurufen. Auch die integrierte Suche ist gelungen und hilft dabei, Ausgaben der Shell anhand regulärer Ausdrücke zu filtern.
Unglücklicherweise präsentierte sich das Programm im Test nicht nur von seiner Schokoladenseite: So verlor es im Test wiederholt sämtliche Verbindungen, obwohl wir diese zuvor abgespeichert hatten. Das als praktische Funktion angepriesene Tray-Icon ließ sich weder über die Kommandozeile noch über die Optionen aktivieren, und das viel beworbene Expect-Feature – eine Möglichkeit, um interaktiv auf Shellbefehle zu reagieren – ließ sich gar nicht zum Arbeiten überreden. Auch das Bulk Editing, bei dem Sie mehrere Verbindungen auf einmal bearbeiten, beispielsweise um die IP-Adresse zu aktualisieren, wollte im Test einfach nicht funktionieren. Möglicherweise lag dies an der Installation oder an Inkompatibilitäten zum Unity-Desktop – nervig war es dennoch.
Darüber hinaus stehen Hilfesuchende weitgehend im Regen, denn abgesehen von den vorhandenen Tooltipps suchen Sie ein ausführliches Handbuch zum Programm vergebens. Alles in allem wirkt PAC zwar durchdacht und vermag viel Arbeit abzunehmen, Abzüge in der B-Note gibt es dennoch.
Glossar
-
Portknocking
-
Verfahren, um eine komplett blockierende Firewall mit einer vorab definierten Serie von TCP-Befehlen zu öffnen. Dabei spielen in der Regel der Inhalt der Pakete sowie die zeitliche Abfolge ein Rolle.
Infos
[1] PAC-Download: http://sourceforge.net/projects/pacmanager/
[2] PAC-Autor: http://sites.google.com/site/davidtv/
[3] Screen: http://wiki.ubuntuusers.de/Screen
[4] X2go: http://www.x2go.org
[5] SSH Agent Forwarding: http://www.unixwiz.net/techtips/ssh-agent-forwarding.html
[6] SSH-Host-Keys im DNS: http://www.dnorth.net/2007/12/16/sshfp-howto/
[7] Portknocking: https://help.ubuntu.com/community/PortKnocking










