SSH Secure Shell

SSH ist ein Programm, mit dessen Hilfe man Daten und Passwörter verschlüsselt über das Netz transportieren kann. Die Hauptanwendungen sind das "sichere" Login mittels ssh (Ersatz für Telnet, bei dem das Passwort im Klartext übertragen wird), der sichere Datenaustausch von Rechner zu Rechner mittels scp oder "SSH Secure File Transfer Client"/sftp (Ersatz für FTP, bei dem das Passwort ebenfalls im Klartext übermittelt wird) und das sichere Tunneling von TCP- Ports.

Um ssh zu benutzen, muss auf dem Zielrechner ein ssh-Serverdienst und auf dem eigenen Rechner ein ssh-Client installiert sein. Dies ist auf allen öffentlichen Unix-Rechnern des URZ (kde03, kde04,aixterm1-11) der Fall. Auf den PCs im PC-Pool sind die Windows-Clienten installiert.

Zur Zeit läuft auf den URZ-Rechnern die Version SSH-3.1.0. Das Rechenzentrum hat eine (kostenfreie) Campus-Lizenz des "kommerziellen" SSH-Produktes, in der Clienten für Windows-, Unix- (und speziell vorkompiliert für Linux-Systeme (rpm)) bereitgestellt werden.

Die Versionen 1 und 2 von ssh sind inkompatibel. Aus Sicherheitsgründen werden Anfragen von ssh1-Klienten nicht mehr wie bei Version SSH-2.3.0 an ssh2 weitergeleitet.

Inhalt:
  1. Benutzungshinweise
  2. Installationshinweise
  3. Public Keys
  4. Lizenz
  5. Manual Pages
  6. Links

 

Benutzungshinweise

    Allgemein

  • Die Kommandozeilenumgebung "ssh" entspricht weitgehend dem unsicheren Vorgänger "telnet".
  • Es ist möglich, mit ssh ix.urz.uni-heidelberg.de über den ssh-Proxy Verbindung zu dem aktuell am wenigsten belasteten Dialogserver aufzubauen.
  • Wegen der AFS-Umgebung im URZ muss das Passwort auch bei der Verwendung von ssh immer angegeben werden (d. h. weitergehende Vertrauensstellungen/Trusts zwischen den Rechnern sind nicht möglich, Host-basierte und User-Public-Key Authentifizierung sind nicht erlaubt).
  • Standardmäßig wird ssh2 verwendet. Viele fremde Installationen verwenden noch alte inkompatible ssh-Dienste aus Version 1. Um Befehle der Version 1 auszuführen, muss an das Kommando eine "1" angehängt werden, z. B. "ssh1".
  • Wegen Problemen mit der Version SSH-2.4 in unserer Rechnerlandschaft (div. Bugs) setzen wir diese serverseitig nicht ein und warten auf 2.5.
  •  

    Windows-Client

  • Vorsicht in der Umgewöhnungsphase, dass man nicht Userid und Password in die Felder für Host Name und User Name eintippt, wenn jemand hinter einem steht!
  • Tip(p): aus dem ssh-Fenster lassen sich beliebig neue Fenster aufrufen, sowohl shell-, als auch ftp-Clienten, ohne neu einzuloggen
  • Tip(p): wenn man verschiedene Konfigurationen abspeichert und die Links auf dem Desktop oder unter Start/... ablegt, kann man direkt auf bestimmte Rechner/User/Fenstergröße-Kombinationen zugreifen

     

  • Unschön: pine und der Windows-Client arbeiten nicht immer ideal für cut-and-paste zusammen. Wer einen X-Server installiert hat, rufe pine besser in einem dtterm-Fenster auf...
  • Wenn die eigenen Eingaben nicht mehr angezeigt werden, der Rechner aber sonst noch reagiert, kann man dies mit
    stty echo
    beheben
  • Urz-Unix-Client

  • Es gibt auf den AIX-Rechnern des Unix-Pools einen grafischen ssh-Clienten xssh. Diesen findet man auch im Application Manager von CDE unter Rechner.
  • Statt ssh ist auch das Kommando slogin möglich
  • Wechseln vom Sitzungs- zum Steuerungsmodus (z. B. zum Abbrechen der Sitzung): statt mit ESC ] mit CR~?
  • BUG-Workaround (zumindest ssh.com-V2.3): Wenn der Client eine Verbindung nach einer Stunde abbricht, dann sollte man den Public Key für den Zielrechner in sein lokales Verzeichnis kopieren, also z. B.
    cp /usr/urzdbin/etc/ssh2/hostkeys/key_22_at8.pub
                ~/.ssh2/hostkeys/
  • Open-Ssh

  • Bei OpenSsh (Version 2) besteht grundsätzlich das Problem, dass OpenSsh den automatischen Austausch eines neuen Session-Keys (Re-Keying) bislang nicht unterstützt. Wenn eine Verbindung überhaupt aufgebaut werden kann, dann besteht diese in der Regel ca. eine halbe Stunde.
  • Bei OpenSsh 2.3 klappt die Zusammenarbeit mit unseren Servern immerhin ;-(bis zum Re-Keying).
  • Bei Open-Ssh kann es zudem vorkommen, dass zuerst die (alte) Protokollversion 1 ausprobiert wird. Dann hilft der Aufruf ssh -2. Alternativ kann man die Protokollreihenfolge in der Client-Konfigurationsdatei vorgeben.
  • Mit dem SSH-Client kann in der Regel auf OpenSSH-Server zugegriffen werden.
  • Unsere Uni-Lizenz umfaßt auch eine ssh-Version für den Linux-Client, siehe den Link zum Software-Verzeichnis.
  • Datentransfer - File Transfer Client

  • Der Windows-Client von SSH enthält auch einen grafischen SFTP-Client. (Wir empfehlen, eine Version >= 3.1 zu verwenden. Benutzungshinweise mit Bildern hier!)
    Das menügesteuerte WS_FTP am PC kann somit (und sollte, aus Sicherheitsgründen) durch den "SSH Secure File Transfer Client" ersetzt werden. Statt zwei Fenstern für lokale Dateien (links) und "remote" Dateien (rechts) gibt es nun zwei Fenster für die remote-Dateien (hierarchisch organisiert wie im Windows-Explorer), in die man die lokalen Dateien aus der normalen Desktop- oder Ordner-Umgebung hinein-"ziehen und übergeben" kann (drag & drop) bzw. umgekehrt.
  • Ein zeilenorientiertes Kommando sftp (mit den Unterbefehlen GET und PUT) gibt es sowohl für Unix- als auch (ab V. 2.4.0) für Windows-Clienten als sftp.
  • Das Zeilenkommando scp, das dem R-Kommando rcp ähnlich ist ("Secure copy", Syntax: scp quelldatei zieldatei), ist auf Unix- und Windows-Clienten verfügbar (im Windows nach dem Setzen des entsprechenden Pfades).
  • "SSH Secure File Transfer Client" bzw. sftp kann in Version 2.x nur binären Filetransfer. Ab Version 3.0 kann der Client wahlweise auch Datei-Extender-gesteuerte automatische Konversion vornehmen, allerdings war V. 3.0 noch fehlerhaft, daher empfehlen wir V. 3.1 oder größer.
    Der folgende Tip(p) ist nur für Clienten der Version 2.x nötig: Nach dem Herunterladen von Text-Dateien aus dem Unix ins Windows kann man einen Editor verwenden, der auch das UNIX Zeilenende erkennt (z.B. Word, Wordpad), um dieses ins PC-Zeilenende umzuwandeln, wenn die Text-Datei in diesem Format weiterbearbeitet werden soll. (Beantworten Sie in diesem Falle beim Speichern die Rückfrage "Sie sind dabei, die Datei als Textdatei zu speichern. Dadurch geht die Formatierung verloren. Möchten Sie den Vorgang trotzdem fortsetzen?" entgegen dem Vorschlag mit "Ja". Wenn Sie dies öfter brauchen, können Sie sich eine Verknüpfung mit dem Programm auf dem Desktop erstellen, auf welche Sie dann Ihre Dateien einfach "ziehen und übergeben" können.
    Dazu klicken Sie im Windows98/2000/Me auf Start > Programme > Zubehör und ziehen mit dem rechten Mausknopf die Zeile "Wordpad" auf den Desktop und wählen dann aus dem Kontextmenü "Verknüpfung(en) hier erstellen".
    In Windows NT können Sie über Arbeitsplatz > (Festplatte) > WINNT > Profiles > Default User > Startmenü > Zubehör, mit dem rechten Mausknopf die Verknüpfung zu Wordpad aufs Desktop kopieren.)
  •  

    Umgekehrt können Sie nach dem Hochladen einer Textdatei vom PC ins Unix die unpassenden Zeilenenden, die meist als ^M erscheinen, aber selten stören, umwandeln mit

    sed -e 's/^M//' dateiname > tmp
    mv tmp dateiname
    oder mit: recode ibmpc:latin1 datei
 

Installationshinweise

Windows-Client

Version 3.x des Windows-Clienten ist mit einer Lizenz versehen, die den privaten oder akademischen Gebrauch ohne Kosten gestattet. Bitte beachten Sie die bei der Installation erscheinende Lizenzvereinbarung.
(Nur für Version 2.x, nicht mehr fü 3.x:) Danach können Sie einen Secure-File-Transfer zu unserem Unix-Pool starten, wo Sie sich mit Ihrer Unix-Benutzeridentifikation anmelden müssen, um die Lizenzdatei abzuholen. Damit können Sie dann Ihren Clienten dauerhaft lizensieren. (Siehe auch unten unter Lizenz)
Dazu folgender Hinweis: Wenn man im Windows-Client unter

Edit > Settings... > Global Settings > FileTransfer klickt, und dort die Option
"Show Root Folder" aktiviert, dann kann man sich nach dem Einloggen zu
/afs/urz/license/ssh/license durchklicken, wobei nach dem Klick auf "afs" und "urz" etwas Geduld benötigt wird...

Wenn andererseits die Lizenzdatei bei der Installation schon im selben Verzeichnis liegt wie das SSH-Installations-.exe, wird die Lizenz automatisch übernommen.

Ab dem Client 3.0 wird für nicht-kommerzielle Anwendungen keine explizite Lizenz-Datei mehr verlangt. Wenn (bei Upgrade) eine alte vorhanden ist, stört diese sogar!! Empfehlung: alte Version deinstallieren, Lizenzdatei löschen oder umbenennen, dann erst V 3.0 installieren. Siehe auch die Mail von ssh.

Siehe auch die README-Datei im Download-Bereich.

Unix-Paket

Im Unix-Paket sind sowohl der Client als auch der Serverdienst enthalten. Bitte beachten Sie die Sicherheitsmeldungen des jeweiligen Herstellers, wenn Sie den Serverdienst auf Ihrem Rechner installieren.  

Public Keys

Bei ssh wird mit einem unsymmetrischen Schlüsselpaar ("Public Key" Technik) ein gesicherter Austausch der Verschlüsselungsschlüssel zwischen dem eigenen und dem fremden Rechner gewährleistet. (Die Verschlüsselung selbst erfolgt mit einem für die Sitzung erzeugten – symmetrischen - Session-Key)

Dabei kann man drei Fälle unterscheiden:

  1. Erstmalige Verwendung

    (siehe Empfehlung): Der Public Key ist auf dem eigenen Rechner noch nicht akzeptiert:

    Dann bietet der fremde Rechner seinen Public Key zur Annahme an. Der Client zeigt - implementierungsabhängig - einen Warnhinweis, verbunden mit dem Key oder einer "leicht lesbaren Kurzform" (=fingerprint) an, und gibt dem Benutzer die Wahl, den Key (für immer) zu akzeptieren, oder evtl. erstmal nur für diese Verbindung, z.B. um den Key aus anderer Quelle zu besorgen, oder sie ganz abzubrechen.

     

    • Windows-Client:
      Winssh Newkey

       

    • Unix/Linux-Client von ssh.com:
      aixterm1:/home/user> ssh at2
Host key not found from database.
Key fingerprint:
xefir-kusim-zurim-penol-zyhuf
                    -tocel-dyges-fadyk-pagag-barep-guxux
You can get a public key's fingerprint by running
% ssh-keygen -F publickey.pub
on the keyfile.
Are you sure you want to continue connecting (yes/no)? yes
Host key saved to /home/user/.ssh2/hostkeys/key_22_at2.pub
host key for at2, accepted by user Fri Oct 20 2000 08:37:28
user's password:
	
    • Unix/Linux-Client OpenSSH:
      The authenticity of host 'at8 (129.206.128.18)'
	                         can't be established.
RSA1 key fingerprint is
      a8:14:c3:f3:2a:d5:b8:2b:44:ec:3e:03:02:ca:61:6d.
Are you sure you want to continue connecting (yes/no)?
  2. Der Public Key ist dem eigenen Rechner bereits bekannt

    Wenn der Public Key bereits in /etc/ssh2/hostkeys/key_22_RECHNERNAME.pub (oder einer vergleichbaren systemweiten Datei) vorgehalten, oder im Anwenderverzeichnis, z.B. ~/.ssh2/hostkeys/key_22_RECHNERNAME.pub von einem früheren Aufruf gespeichert, oder aber "per Hand" aus anderer Quelle eingefügt ist, und wenn dieser Public Key zu dem Private Key des Servers passt, dann erfolgt keine besondere Warnmeldung.

    Typische Verzeichnisse/Dateien für Host-Keys

    ssh1

    /etc/ssh1/ssh_known_hosts

    ~/.ssh/known-hosts

    ssh2

    /etc/ssh2/hostkeys/...

    ~/.ssh2/hostkeys/...

    Win-FreeSSH1

    C:\Programme\FreeSSH\known.hosts

     

    Win-ssh2

    C:\WinNT\Profiles\username\Application Data\SSH\HostKeys\...

     

    Verzeichnisse/Dateien für Host-Keys am URZ-Heidelberg

    ssh1

    /usr/urzdbin/etc/ssh1/ssh_known_hosts

    ~/.ssh/known-hosts

    ssh2

    /usr/urzdbin/etc/ssh2/hostkeys/...

    ~/.ssh2/hostkeys/...

     

  3. Dem eigenen Rechner ist ein anderer Key bekannt!

    Dies kann bei Versionswechseln vorkommen, wenn neue Keys erzeugt werden, bei einem Key-Wechsel aus Sicherheitsgründen, oder aber wenn tatsächlich jemand "in der Mitte" sitzt und vorgibt, der gewünschte Rechner zu sein.
    Wenn man weiß, dass der Key gewechselt wurde, und man hat den Key im eigenen Verzeichnis, dann kann man die entsprechende Zeile/Datei löschen, und dann wie unter 2. beschrieben fortfahren.
    • Windows-Client:
      Winssh Badkey
    •  

    • Unix/Linux-Client:
      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      @       WARNING: HOST IDENTIFICATION HAS CHANGED!         @
      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
      Someone could be eavesdropping on you right now
                                       (man-in-the-middle attack)!
      It is also possible that the host key has just been changed.
      Please contact your system administrator.
      Add correct host key to
      	"/home/x80/.ssh2/hostkeys/key_22_an2.pub"
      to get rid of this message.
Received server key's fingerprint:
      xizal-lycah-hibag-gefoz-mibop-tamel-cepiv
      	-dudyh-sygyv-dydos-kixyx
      You can get a public key's fingerprint by running
      % ssh-keygen -F publickey.pub
on the keyfile.
      Agent forwarding is disabled to avoid attacks
      	by corrupted servers.
      X11 forwarding is disabled to avoid attacks
      	by corrupted servers.
      Are you sure you want to continue connecting (yes/no)?

    Auf allen öffentlichen Rechnern des URZ wird derselbe Public Key verwendet. Er kann hier nachgeschaut oder heruntergeladen oder auf anderen Wegen (siehe Empfehlung) überprüft werden.

Manual Pages

Nutzer-Kommandos
(man1)

make-ssh-known-hosts1

scp1

slogin1

ssh1

ssh-add1

ssh-agent1

ssh-keygen1

scp2 / scp

sftp2 / sftp

slogin2 / slogin

ssh2 / ssh

ssh-add2 / ssh-add

ssh-agent2 / ssh-agent

ssh-chrootmgr

ssh-dummy-shell

ssh-keygen2 / ssh-keygen

ssh-probe2 / ssh-probe

ssh-pubkeymgr

sshregex

xssh

Konfigurations- dateien
(man5)

ssh2_config

sshd2_config

Server- Dienste
(man8)

sshd1

sshd2

 

Links

Verantwortlich: Team Internetdienste
Letzte Änderung: 29.11.2011
zum Seitenanfang/up