. .

SSH ohne Passwortabfrage über SSH-Key


Der Client ist ein Dual-Core AMD Opteron(tm) Processor 2210 System auf gentoo Linux mit dem Kernel 2.6.19-gentoo-r5.

Der Server ist ein sun4u TI UltraSparc IIIi System auf gentoo Linux mit dem Kernel 2.6.20-gentoo-r6.

Ich erkläre hier, wie man sich auf entfernte Rechner per SSH ohne Passwortabfrage über einen SSL-Key einloggen kann. Prinzipiell ist es zwar unsicherer, sich per Key einzuloggen und nicht über die Passwortabfrage, komfortabler ist dies aber allemal.

Der Client hat einen privaten Schlüssel, während der öffentliche Schlüssel im home-Verzeichnis des entsprechenden Benutzers auf dem Server liegt.

Da das Ziel ist, keine Passworteingabe machen zu müssen, darf dem Schlüssel kein Passwort vergeben werden, was bei ungewolltem Verteilen des Schlüssels den Server für Fremde öffnen kann.
Voraussetzung der Authentifizierung über Keys ist folgende Anweisung in /etc/ssh/sshd_config:

vim /etc/ssh/sshd_config

 

# /etc/ssh/sshd_config

PubkeyAuthentication yes

PermitRootLogin no

„PermitRootLogin no“ ist zwar jetzt nicht erforderlich in Bezug auf das Authentifizieren per public key, aber von der Möglichkeit, sich direkt als root einzuloggen, ist wirklich abzuraten.

Im Normalfall können alle andere Einstellungen auf den gesetzten Werten verbleiben.
Der sshd muss neu gestartet werden:

/etc/init.d/sshd restart

Jetzt muss der Key erstellt werden. Dazu wechseln Sie bitte zu dem Benutzer, der sich per Schlüssel authentifizieren soll.

su – nici
ssh-keygen -t dsa
Generating public/private dsa key pair.

Enter file in which to save the key (/home/nici/.ssh/id_dsa): [Enter]

Enter passphrase (empty for no passphrase): [Enter]

Enter same passphrase again: [Enter]

Your identification has been saved in /home/nici/.ssh/id_dsa.

Your public key has been saved in /home/nici/.ssh/id_dsa.pub.

The key fingerprint is:

c5:e9:9f:4a:5e:f0:56:e5:1e:c4:b6:24:a7:59:4a:7e nici@sunfish

Der nun erstellte öffentliche Schlüssel (/home/nici/.ssh/id_dsa.pub) kann nun auf den Server kopiert werden. Die einfachste Variante ist folgende:

ssh-copy-id -i ~/.ssh/id_dsa.pub nici@dbfish
26

Password: [Passwort]

Now try logging into the machine, with „ssh ‚nici@dbfish'“, and check in:

.ssh/authorized_keys

to make sure we haven’t added extra keys that you weren’t expecting.

Bitte kopieren Sie den öffentlichen Schlüssel nicht per ftp oder anderen unverschlüsselten Protokollen.

Falls ssh-copy-id nicht vorhanden ist, können Sie den Schlüssel auch so kopieren:

cat ~/.ssh/id_dsa.pub | ssh nici@dbfish ‚cat >> ~/.ssh/authorized_keys‘

Ihr privater Schlüssel (/home/nici/.ssh/id_dsa) sollte keinem zugänglich gemacht werden. Ändern Sie die Rechte auf diese Datei auf Besitzer-Nur-Lesen, Alle-Anderen-Nichts ab:

chmod 400 ~/.ssh/id_rsa

Nachdem der Schlüssel kopiert worden ist, testen Sie diesen, indem Sie sich per ssh auf dem Server einloggen.

ssh nici@dbfish

Wenn Sie sich ohne Passwort-Eingabe einloggen konnten, ist Ihr Schlüssel richtig erstellt worden.

Achten Sie bei Problemen darauf, dass in der /etc/hosts.deny der ssh-Login nicht verwehrt wird.


Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>