SSH ohne Passwort
Dauerd das Passwort eingeben – ein Graus! Es geht auch ohne! scp
und rsync
werden es dir danken. Diese Anleitung geht davon aus, daß root sich an der Shell einloggen kann. Falls nicht, ein Passwort für root anlegen: passwd root
.
Voraussetzungen
Damit man sich ohne Passwort am Zielrechner mit ssh einloggen kann, muß zuerst der ssh-Server konfiguriert sein.
vi /etc/ssh/sshd_config
... PermitRootLogin without-password ... PasswordAuthentication no ChallengeResponseAuthentication no ... UsePAM yes # Login mit Passwort und/oder Key #UsePAM no # Login nur mehr mit Key möglich
service sshd restart
Bei Problemen beim Einloggen den Verbose-Modus einschalten
ssh -v [email protected]
Client konfigurieren
In Linux ist das passwortlose Einloggen leichter zu konfigurieren als in Windows, deswegen beginnen wir mit Linux.
Linux
Zuerst erzeugen wir ein RSA-Schlüsselpaar mit 4096 Bit (2048 Bit sind heute zu wenig)
ssh-keygen -t rsa -b 4096
Wenn der Keygenerator nach einem Passwort frägt, frei lassen.
Generating public/private rsa key pair. Enter file in which to save the key (/home/bigboss/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/bigboss/.ssh/id_rsa. Your public key has been saved in /home/bigboss/.ssh/id_rsa.pub. The key fingerprint is: SHA256:sI3TBUNYERB3SWWGzw3y0XWPQnjSV79zLCPAdNQb/6Y bigboss@linux The key's randomart image is: +---[RSA 4096]----+ | o*O+o**oo++| | .. +**=.oo=| | . .B+=. *| | * . +o.oo| | + S . oo+| | . . o=| | o | | E | | | +----[SHA256]-----+
Der Keygenerator hat jetzt die beiden Schlüssel im Ordner ~/.ssh
erstellt
id_rsa
ist der private Schlüsselid_rsa.pub
ist der öffentliche Schlüssel
Jetzt gilt es, den öffentlichen Schlüssel auf den Zielrechner zu übertragen. Entweder durch manuelles Anhängen an die Datei ~/.ssh/authorized_keys
am Zielrechner mittels cat
oder mit dem Werkzeug ssh-copy-id
.
ssh-copy-id [email protected]
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/bigboss/.ssh/id_rsa.pub" The authenticity of host 'linux.lan (192.168.0.9)' can't be established. RSA key fingerprint is SHA256:sI3TBUNYERB3SWWGzw3y0XWPQnjSV79zLCPAdNQb/6Y. Are you sure you want to continue connecting (yes/no)? ssh-copy-id [email protected] /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/bigboss/.ssh/id_rsa.pub" The authenticity of host 'linux.lan (192.168.0.9)' can't be established. RSA key fingerprint is SHA256:sI3TBUNYERB3SWWGzw3y0XWPQnjSV79zLCPAdNQb/6Y. Are you sure you want to continue connecting (yes/no)? Please type 'yes' or 'no': yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added.
Das war es auch schon. Ab jetzt kann sich root am Zielrechner ohne Passwort einloggen. rsync
, scp
und sftp
funktioniert jetzt ebenfalls ohne Passwort.
~/.ssh/config
Anstatt jedes Mal einen speziellen Private Key mit dem Parameter -i
anzugeben
ssh -i ~/.ssh/private.key [email protected] -p 57311
kann man dies in der config-Datei tun
vi ~/.ssh/config
Host server HostName server.lan Port 57311 User ich IdentityFile ~/.ssh/private.key
Ab jetzt kann man sich einloggen mit dem Kurzbefehl
ssh server
Windows
In Windows ist die Sache etwas komplizierter, aber zu schaffen. Es kommt das allseits bekannte Programm PuTTY zum Einsatz. Falls noch nicht installiert, hier downloaden:
Zuerst muß mit puttygen.exe
ein Schlüsselpaar erstellt werden.
Wir erstellen einen SSH-2 RSA-Key mit mindestens 4096 bit.
Nach einer kleinen Mausorgie ist das Schlüsselpaar erstellt und im Feld „Key“ ist der Public Key, der am Zielrechner an ~/.ssh/authorized_keys
angehängt werden soll. In dieser Datei muß jeder Key in einer einzigen Zeile eingetragen werden. Also am besten gleich vom PuTTY Key Generator den Public Key kopieren und am Zielrechner einfügen.
Die RSA Public Keys beginnen alle mit AAAAB3NzaC1yc2E
. Dies ist durch RFC4253 definiert.
Die Datei soll in etwa so aussehen:
comment "ich@Putty 19.03.2018" ssh-rsa AAAAB3NzaC1yc2E... lange Wurst mit blabla ...bMU= ssh-rsa AAAAB3NzaC1yc2E... längere Wurst mit blabla ...cNV== du@Putty
Nachdem der Public Key und der Private Key gespeichert wurden, das Programm pageant.exe
aus dem Putty-Ordner aufrufen. Pageant (PuTTY authentication Agent) ist ein Programm zur Verwaltung von Keys für PuTTY. Nach dem Aufruf findet man es in der Taskleiste
Man muß nur noch den soeben erstellten Key adden (die PPK-Datei) und schon kann man sich ohne Passwort am ssh-Server mit PuTTY einloggen, vorausgesetzt der ssh-Server ist richtig konfiguriert.
So sieht ein korrekter Login mit PuTTY aus:
Android
Hier hat sich die kostenlose, werbefreie App JuiceSSH aus dem Google Play Store bewährt.
Im Reiter „Identities“ entweder ein neues Schlüsselpaar erstellen oder eines importieren. Das erzeugte Schlüsselpaar mit Long Press auf die Identität exportieren und den Public Key zur Datei authorized_keys
am ssh-Server hinzufügen.