SSH

Tote Sitzungen beenden

  • ~. Tilde Punkt . beendet Sitzungen out-of-band

Public Key Authentication

Zuerst braucht man ein Schlüsselpaar, falls man noch keines hat, kann man sich so eines generieren:

 > ssh-keygen -b 2048 -t rsa

! Ein vorhandenes Schlüsselpaar wird damit überschrieben.

Das Kommando generiert einen 2048 Bit langen RSA-Key für SSH Protokoll Version 2 - die Standardlänge von 1024 Bit wird nicht mehr als unumstritten sicher betrachtet. Anmerkung: 2048 Bit ist übrigens nicht doppelt so sicher wie 1024 Bit, sondern 2^1024 mal sicherer (ausgerechnet ist das eine Dezimalzahl mit mehr als 300 Stellen!).

Danach muss man den öffentlichen Schlüssel auf den entfernten Rechner übertragen:

 > ssh-copy-id -i .ssh/id_rsa.pub remoteuser@remotehost.example.net

Auf dem Remotesystem wird dann der lokale öffentliche Schlüssel in die Datei ~/.ssh/authorized_keys aufgenommen. Ebenso wird in der lokalen Datei ~/.ssh/known_hosts der öffentliche Schlüssel des Remotesystems aufgenommen.

Falls localuser ein anderer Username als remoteuser ist (also so wie im Beispiel oben), dann braucht man noch folgenden Eintrag in der lokalen ssh-Config:

 # ~/.ssh/config
 Host remote
  Hostname remotehost.example.net
  User remoteuser         
  # ForwardX11 yes         #  nur wenn man jedes mal auf dem Remotesystem X11-Programme starten will. 
  # HostKeyAlias remote    #  nur für spezielle Fälle ;)
  # Port 42                #  nur für spezielle Fälle ;)

Keine ungeschützten Keys benutzen!

Eine sicherere Alternative zum Passwortlosen Schlüssel bietet sshagent, beschrieben in OpenSSH key management, Part 1 (von IBM) und den darauf folgenden Artikeln.

Siehe auch http://www.schlittermann.de/ssh.

SSHagent

Der SSHagent kann immer via .bash_profile als funktion aufgerufen werden.

sshagent()
{
    if ps -o "%p %c" -u `id -u` |grep ssh-agent; then
        set $(ps -o "%p %c" -u $(id -u)|grep ssh-agent )
        SSH_AGENT_PID=$1
        export SSH_AGENT_PID
        SSH_AUTH_SOCK=$(find /tmp/ -type s -name "agent.$(( $1 - 1 ))" -uid $(id -u))
        export SSH_AUTH_SOCK
        echo "ssh-agent lief bereits"
    else
        eval $(ssh-agent )
        ssh-add ~/.ssh/id_rsa
        echo "ssh-agent wurde gestartet"
    fi
}
export -f sshagent

In die .bashrc kommt dann nur

sshagent
public/ubuntu/ssh.txt · Zuletzt geändert: 2009/04/24 20:39 (Externe Bearbeitung)
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0