Wird Zeit das man den Artikel hier mal vernünftig macht, habe deswegen gestern drei Stunden verplempert, weil vermutlich wg. der Hitze, der Groschen nicht fallen wollte
Server
Installation des Dienstes
apt install openssh-server
In der Datei /etc/ssh/sshd_config wird der SSH-Dienst gesteuert. Die Zeile, die uns interessiert.
PermitRootLogin without-password
Was bedeutet das jetzt?
- without-password Der Passwort-Login für Root ist deaktiviert, dann kann man sich nur mittels SSH-Key einloggen, wenn dieser hinterlegt wurde.
PermitRootLogin
Specifies whether root can log in using ssh(1). The argument must be “yes”,
“without-password”, “forced-commands-only”, or “no”. The default is “yes”.
If this option is set to “without-password”, password authentication is disabled for
root.
If this option is set to “forced-commands-only”, root login with public key
authentication will be allowed, but only if the command option has been specified
(which may be useful for taking remote backups even if root login is normally not
allowed). All other authentication methods are disabled for root.
If this option is set to “no”, root is not allowed to log in.
Quelle: http://manpages.ubuntu.com/manpages/trusty/en/man5/sshd_config.5.html
Datei bearbeiten und dann den Dienst einmal neustarten
service sshd restart
oder
/etc/init.d/ssh restart
Client
Wir erzeugen einen Key mit
RSA (veraltet)
ssh-keygen -t rsa -b 4096
ED25519
ssh-keygen -t ed25519
Dann kopieren wir diesen Key auf das Zielsystem. Das geht aber nur, wenn
PermitRootLogin yes
steht. Also vorher auf dem Server umstellen und den Dienst neu starten!
Key kopieren
RSA (veraltet)
cat .ssh/id_rsa.pub | ssh username@domain.com 'cat >> .ssh/authorized_keys'
ED25519
cat .ssh/id_ed25519.pub | ssh username@domain.com 'cat >> .ssh/authorized_keys'
Fertig!
Danach auf dem Server wieder auf
PermitRootLogin without-password
umstellen. Ganz wichtig!!