Benutzer-Werkzeuge

Webseiten-Werkzeuge


it:linux:ssh_public_key_authentication

SSH Public Key Authentication

Um die öffentlichen und privaten Schlüsseldateien zu erzeugen,
können Sie den SSH-Keygen-Befehl verwenden, der mit OpenSSH installiert wird.

ssh-keygen -t rsa

Sie werden jetzt aufgefordert, in den passphrase einzugehen.
Ein guter passphrase sollte mindestens 10 - 20 Charaktere lange sein, und eine Mischung von alphanumerischen und Zeichensetzungscharakteren verwenden.

Enter passphrase (empty for no passphrase):

Es ist unklug ein Schlüssel ohne passphrases zu haben. Wenn jemand gerade die private Schlüsseldatei kopiert,
werden sie Zugang zu allen Daten haben.
Verwenden Sie den folgenden Befehl, wenn Sie jemals passphrase ändern wollen:

ssh-keygen -p

Ihre öffentliche Schlüsseldatei ist jetzt ~/.ssh/id_rsa.pub dieser Schlüssel kann mit jedem geteilt werden.
Ihre private Schlüsseldatei ist jetzt ~/.ssh/id_rsa dieser Schlüssel muss heimlich behalten werden.

Schlüsselinstallation

Sie müssen jetzt Ihre öffentliche Schlüsseldatei dem entfernten Gastgeber kopieren, auf dem Sie im Stande sein wollen, öffentliche Schlüsselbeglaubigung zu verwenden.

ssh-copy-id -i ~/.ssh/id_rsa.pub username@zielhostnameODERip

manuelle Schlüsselinstallation

Um den Schlüssel zu installieren, muss den Schlüssel zum ~/.ssh/authorized_keys Datei auf jedem Gastgeber anhängen, auf dem Sie es verwenden möchten.

# copy the key to the remote host
scp ~/.ssh/id_rsa.pub user@remotehost:id_rsa.pub
# ssh into the remote host using your password
ssh user@remotehost
# append the public key
cat id_rsa.pub >> ~/.ssh/authorized_keys
rm id_rsa.pub

öffentliche Schlüsselbeglaubigung

Datei: /etc/ssh/sshd_config

ChallengeResponseAuthentication no
PasswordAuthentication no

SSH Dienst restarten

/etc/init.d/sshd restart

~~UP~~

Alternative Doku

ssh ohne Passwort mit öffentlichen Schlüsseln (Public Key)

Voraussetzung: auf beiden Systemen ist ssh installiert und läuft, sowie /root/.ssh/ Ordner existiert, wenn nicht dann erstellen mit:

mkdir -p ~/.ssh
chmod 700 ~/.ssh

Beispiel: System A zugreift über ssh auf Zielsystem B, um irgendwelche Befehle auszuführen, z.b. aus crontab:

*/1 * * * * rsync -avz -e ssh root@zielsystem:/var/log/logfile.log /var/log/logfolder/ 1> /dev/null 2> /dev/null
  • Mit ssh auf System A anmelden und ein key erstellen mit:

ssh-keygen -t rsa

  • Erstelltes key auf Zielsystem B kopieren

cat ~/.ssh/id_rsa.pub | ssh root@zielsystemhostname 'cat » .ssh/authorized_keys'

  • ssh Anmeldung testen, bei erstem Anmelden mit „yes“ bestätigen:

ssh zielsystemhostname

  • Danach kann über ssh ohne Passwort zugegriefen und kommunieziert werden.
Bei dem hier beschriebenen Verfahren liegt der Schlüssel auf Rechner A unverschlüsselt vor.
Ein Angreifer, der Zugriff auf A als Benutzer a erlangt, hat damit automatisch Zugriff auf Rechner B als Benutzer b.

~~UP~~

it/linux/ssh_public_key_authentication.txt · Zuletzt geändert: 2019/05/14 21:16 von 127.0.0.1