SSH

Aus Fachschaft_Informatik
Zur Navigation springen Zur Suche springen

Secure SHell

hosts

ikum: rzdspc10.informatik.uni-hamburg.de

rrz: publogin.rrz.uni-hamburg.de

zu anderen Hosts

Mit Hilfe einer geeigneten ~/.ssh/config kann man von zu Hause aus sich bequem zu Hosts verbinden, die nicht direkt zugaenglich sind:

Host rzdspc6
  User 4winter
  HostName rzdspc6.informatik.uni-hamburg.de
  ProxyCommand ssh 4winter@rzdspc10.informatik.uni-hamburg.de /usr/pkg/current/sbin/nc %h %p 2> /dev/null

Und nu:

teythoon@europa$ ssh rzdspc6
Last login: Sun Oct  7 14:05:16 2007 from rzdspc10.inform
Sun Microsystems Inc.   [[SunOS]] 5.10      Generic January 2005

Willkommen auf der SUNW,Sun-Fire-V445 rzdspc6.informatik.uni-hamburg.de

Last cluster login: Sun Oct 7 14:03:05 on rzdspc6
rzdspc6$ 

Public-Key Authentifizierung

Vom Laptop im Netz des Informatikum anmelden, ohne jedesmal das Passwort eingeben zu müssen? Geht auch, und ist dabei trotzdem noch sicher! Auf dem eigenen Laptop muss zuerst ein Public/Private-Schlüsselpaar erstellt werden. Das funktioniert durch das Programm "ssh-keygen" und sieht dann etwa so aus:

olli@desktop:~$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/olli/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/olli/.ssh/id_rsa.
Your public key has been saved in /home/olli/.ssh/id_rsa.pub.
The key fingerprint is: bla bla
olli@desktop:~$

Man kann alle Abfragen einfach mit Enter bestätigen. Nun muss man dem Server, in diesem Fall rzdspc10, nur noch eine Kopie des Schlüssels zukommen lassen. Das funktioniert vom Laptop aus über ssh-copy-id:

ssh-copy-id -i ~/.ssh/id_rsa.pub 7bestman@rzdspc10.informatik.uni-hamburg.de
Password: *passwort*
bla bla bla

der Parameter -i gibt hierbei den public-Schlüssel an... Falls man das Programm ssh-copy-id nicht hat (fehlt z.B. auf rzdspc10 und den anderen), kann man den Vorgang auch per Hand durchführen. Man kopiert die Datei "~/.ssh/id_rsa.pub" vom Client, also da wo man sie erstellt hat, auf den Zielrechner, loggt sich dann an dem Zielrechner ein und kopiert den Inhalt ans Ende der Datei ~/.ssh/authorized_keys. "cat mein-key.pub >> ~/.ssh/authorized_keys" auf dem Server ausgeführt reicht dann.


Nützliche "Tricks"

Mit Hilfe des Port Forwadings kann man auch von Zuhause aus zb das Online Computer Library Center oder die ACM Digital Library durchstöbern:

ssh -L 2222:wwwcache.rrz.uni-hamburg.de:81 <username>@rzdspc10.informatik.uni-hamburg.de

und dann im Browser als Proxy "localhost" mit Port 2222 eintragen. Nachdem man die Verbindung wieder getrennt hat natürlich nicht vergessen die Proxyeinstellungen im Browser wieder zurückzusetzen.

Probleme

  • scp will nicht weil Leerzeichem im Pfad/Dateinamen sind:

den Pfad in Hochkomma ' setzen und vor die Leerzeichen ein Backslash\. Beispiel: scp File user@

  • das Kopieren vieler kleiner Dateien dauert ziemlich lange?

On-the-fly archivieren und entpacken hilft:

ssh <mein-host> 'tar -c /mein/ordner/mit/kleinen/dateien | gzip' | gzip -d | tar -xv