SSH

Aus LinWiki.de

Der Titel dieser Seite lautet eigentlich: ssh. Diese Schreibweise wird als Artikelname von der Wiki-Software nicht unterstützt.

Inhaltsverzeichnis

[bearbeiten] Einloggen über SSH ohne Passworteingabe

[bearbeiten] Warnung

Das Einloggen ohne Passwort kann mitunter ein Sicherheitsrisiko darstellen.

[bearbeiten] Sinn der Sache

Viele haben zu Hause (oder sonstwo) mehrere Rechner, auf denen ein SSH-Daemon läuft - sei es zur Verwaltung des Rechners oder sonstigem. Jedoch kann es, wenn man sich oft auf den Maschinen einloggen muss, mitunter recht nervig werden, jedesmal das Passwort einzutippen. Der Austausch der Public-Keys schafft hier Abhilfe.

[bearbeiten] Vorgehen

In meinem Beispiel arbeite ich jetzt erstmal mit dem imaginären User bob, welcher einen Account sowohl auf rechner1.domain.bla als auch auf rechner2.domain.bla hat.

  • rechner1.domain.bla ist der Rechner, an dem bob sitzt
  • auf rechner2.domain.bla loggt er sich mehrmals täglich per SSH ein.

Der erste Schritt ist, für bob auf rechner1.domain.bla ein Key-Pair zu erstellen:

bob@rechner1.domain.bla ~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/bob/.ssh/id_rsa):
Created directory '/home/bob/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/bob/.ssh/id_rsa.
Your public key has been saved in /home/bob/.ssh/id_rsa.pub.
The key fingerprint is:
1f:66:ea:96:83:16:6c:aa:be:1c:71:56:55:5b:e9:da bob@rechner1.domain.bla

Als nächster Schritt loggt bob sich auf rechner2.domain.bla ein, und überprüft, ob das Verzeichnis ~/.ssh in seinem Homedirectory exisitiert. Wenn nicht - erstellen. Ausloggen. Dann, als bob an rechner1.domain.bla in das Verzeichnis ~/.ssh wechseln und folgendes eingeben:

cat id_rsa.pub | ssh bob@rechner2.domain.bla "cat >> .ssh/authorized_keys"

Man wird jetzt ein letztes Mal nach dem Passwort gefragt. Wenn das alles erledigt ist, kann bob sich von rechner1.domain.bla einfach mit

ssh bob@rechner2.domain.bla

auf rechner2.domain.bla ohne Passwort einloggen.

[bearbeiten] Alternativen wären

[bearbeiten] Vorgehensweise bei ssh-agent nach MrFixit

Man muss die Passphrase nur einmal eingeben, dann wird der Schlüssel dekodiert und im Speicher gehalten. Solange bis man den ssh-agent wieder beendet (also spätestens beim reboot). Da man das ganze mit pam_ssh verbandeln kann, kann man sich sogar die Passworteingabe für den normalen xdm/login-Login sparen.

Hier nochmal mein Setup:

  • /etc/pam.d/xdm
  • die pam_ssh Sachen auskommentiert und want_agent gesetzt.
  • Login per xdm mit user/passphrase (ich muss also zum Anmelden nur die Passphrase meines priv. Schluessels eingeben und auch nur einmal)
  • Schnelle ssh-logins bis ich mich aus X wieder abmelde

So kann man auch bequem per SSH arbeiten. Viele machen bestimmt eine ssh-session auf, geben 2-3 Befehle ein und melden sich wieder ab. Gerade mit dem ssh-multiplexing, dass in OpenBSD 3.6 verfügbar ist, kann man aber direkt so arbeiten:

ssh server ps aux
ssh server ls /root
ssh server /usr/local/etc/rc.d/foo.sh stop

[bearbeiten] Das SSH Protokoll

[bearbeiten] SSH 1

SSH 1 benutzt den Kryptographie-Algorithmus RSA für die Bereitstellung des Schlüssels, dann die Algorithmen 3DES und Blowfish für die eigentliche Übertragung. Für die Sicherung der Datenintegrität wird ein einfaches CRC - Verfahren verwendet.

[bearbeiten] SSH 2

SSH 2 benutzt statt des patentrechtlich umstrittenen RSA die Algorithmen DSA und DH. Das CRC - Verfahren für die Datenintegrität wurde abgelöst durch HMAC.


[bearbeiten] Tunnel

Über SSH können Tunnels eingerichtet werden, d.h. ein Port wird über sichere Verbindung weitergeleitet zum anderen Rechner.

Beispiel: cifs (samba) mount über ssh tunnel

ssh -l <ssh_username> -N -f -L <freier_port z.B. 1139>:<host>:139 <host>
mount -t cifs -o port=<freier_port z.B. 1139>,username=<smb_username>,password=<smb_password> //localhost/<mountdir_remote> <mountdir_local>

[bearbeiten] Siehe auch

[bearbeiten] Weblinks

ssh client für eine sichere Shell

ssh server

sftp client für sichere Dateiübertragung

openssh.com

page.mi.fu-berlin.de/kutz/sshkey.html Eine Erklärung zur automatischen SSH-Authentifizierung per RSA-Key.

Diese Seite wurde zuletzt am 18. Januar 2008 um 20:21 Uhr geändert.
Diese Seite wurde bisher 1.626 mal abgerufen.