Dienstag, 22. Januar 2008

Zugriff auf Server mit Secure Shell

Mit dem Dienstprogramm Terminal können einfach Secure Shell Sessions (SSH) auf andere Server hergestellt werden: ssh [username@]server.domain

Oft wird heutzutage eine Public-Key Authentisierung statt einer einfachen Login/Passwort-Kombination angewendet.

Windows-User setzen dafür oft PuTTY als Terminal-Emulation und den dazu gehörende Pageant für das Key-Handling ein.

Auf dem Mac lässt sich das automatische Key-Handling mit SSHkeychain oder SSHChain machen - es erspart die Eingabe des Passwortes für den Private Key (genannt 'Passphrase') bei jeder neuen Session und ermöglicht auch einen problemlosen Aufbau eines SSH-Tunnels.

Bei Mac OS 10.5 Leopard ist das Key-Management offenbar schon eingebaut.

Ein Key-Pair (Private und Public Key) lässt sich mit dem Befehl ssh-keygen -t dsa im Terminal erzeugen. Wenn man den Key auch unter Windows mit PuTTY verwenden möchte, lässt sich der Private-Key mit mit Puttygen entsprechend konvertieren.

Über SSH kann man mit Secure Copy (scp) Dateien von einem Server auf einen anderen kopieren. Wer es nicht mit Shell-Befehlen machen möchte kann Fugu als SCP Client verwenden.

Ein kleiner Anhang zum Thema Terminal: man kann sich kleine XML-Files (mit Endung .term) für jeden Server erstellen, die dann bei einem Doppelclick eine Session öffnen und dem Terminal-Fenster ein vordefiniertes Aussehen geben. Ein Beispiel:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>WindowSettings</key>
<array>
<dict>
<key>CustomTitle</key>
<string>ssh myname@server1.mydomain.ch</string>
<key>Shell</key>
<string>ssh myname@server1.mydomain.chh</string>
<key>TextColors</key>
<string>0.200 0.200 0.200 1.000 1.000 0.400 0.000 1.000 0.000 0.000 1.000 0.000 1.000 1.000 0.400 0.200 0.200 0.200 0.000 0.502 0.502 1.000 0.000 0.000 </string>
</dict>
</array>
</dict>
</plist>


Damit kann man z.B. die Sessions auf produktive Server mit einer anderen Fensterfarbe als auf Entwicklungssysteme öffnen. Ein paar Farb-Beispiele:

Produktion (rot):

<key>TextColors</key>
<string>1.000 1.000 1.000 0.502 0.000 0.251 0.000 1.000 0.000 0.000 1.000 0.000 0.502 0.000 0.251 1.000 1.000 1.000 0.000 0.502 0.502 1.000 1.000 0.000 </string>


Test (gelb):

<key>TextColors</key>
<string>0.200 0.200 0.200 1.000 1.000 0.400 0.000 1.000 0.000 0.000 1.000 0.000 1.000 1.000 0.400 0.200 0.200 0.200 0.000 0.502 0.502 1.000 0.000 0.000 </string>


Entwicklung (blau):

<key>TextColors</key>
<string>1.000 1.000 1.000 0.000 0.251 0.502 0.000 1.000 0.000 0.000 1.000 0.000 0.000 0.251 0.502 1.000 1.000 1.000 0.000 0.502 0.502 1.000 1.000 0.000 </string>


Man kann noch viele andere Settings in diese Terminal-Dateien ablegen, darauf möchte ich aber hier nicht eingehen.