Inhaltsverzeichnis
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.
Ein Angreifer, der Zugriff auf A als Benutzer a erlangt, hat damit automatisch Zugriff auf Rechner B als Benutzer b.
~~UP~~