ssh Public-Key-Verfahren eingefügt

This commit is contained in:
Bernd Reuther 2020-09-16 16:54:29 +02:00
parent d978cf25b0
commit 9237c33f0e

View File

@ -268,8 +268,103 @@ Passwort:
### SSH-Zugang für "Public-Key-Verfahren" konfigurieren ### SSH-Zugang für "Public-Key-Verfahren" konfigurieren
Eine der sichersten Möglichkeiten, den Server per ssh-Zugang zu erreichen, ist das sogenannte "Public-Key-Verfahren". Dazu wird auf dem Computer, von dem aus der Server erreicht werden soll, ein Schlüsselpaar erzeugt und dessen öffentlicher Teil auf den Server kopiert. Der ssh-Server wird dann so konfiguriert, dass sich der Benutzer mit der Schlüssel-Authentifizierung anmelden kann, ohne dabei das Passwort eingeben zu müssen. Die Anmeldung ist dann nur von dem Gerät aus möglich, auf dem der Schlüssel gespeichert ist.
!!! warning "Achtung"
Auf transportablen Geräten sollte die Schlüsseldatei mit einem Passwort geschützt werden.
#### Vorbereitung am Client (Ubuntu-PC)
Ein Schlüsselpaar mit `ssh-keygen` erstellen:
```
~$ ssh-keygen -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:1D14Rqm4wCxBJjv+GDDV/w2J5PkUncfkobhYCEILHPE user@PC
The key's randomart image is:
+---[RSA 4096]----+
|=**+. . +o.. |
|o==.oo.o.+oo . |
|oooFo*+oo.. + o |
|...+-+=oo. + |
| . ooo..S. |
| . o. .o. |
| o |
| |
| |
+----[SHA256]-----+
```
#### Den öffentlichen Teil des Schlüssels auf den Server übertragen
Das Übertragen des öffentlichen Schlüssels auf den Server erfolgt noch mittels Passwort-Authentifizierung. Wenn später ein weiterer Client für dieses Verfahren eingerichtet werden soll, muss die ssh-Konfiguration vorübergehend auf dieses Verfahren umgestellt werden. Als Werkzeug für die Schlüssel-Übertragung dient das Programm `ssh-copy-id`. Als zusätzlicher Parameter ist der Port anzugeben, der vorher für den ssh-Zugang zum Server festgelegt wurde.
```
user@PC:~$ ssh-copy-id -p 54683 -i .ssh/id_rsa.pub sshuser@1.2.3.4
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_rsa.pub"
/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
sshuser@1.2.3.4's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh -p '54683' 'sshuser@1.2.3.4'"
and check to make sure that only the key(s) you wanted were added.
user@PC:~$
```
#### Testen der Schlüssel-Authentifizierung
Wenn alles geklappt hat, kann man sich jetzt mit dem folgenden Befehl an der ssh-Konsole des Servers anmelden:
```
ssh -p '54683' 'sshuser@1.2.3.4'
```
#### Änderungen am ssh-Server
Nach erfolgreicher Anmeldung wird am Server die ssh_Konfiguration so geändert, dass man sich nur noch über das Public-Key-Verfahren anmelden kann:
=== "/etc/ssh/sshd_config"
```sh hl_lines="2"
...
PasswordAuthentication no
...
```
Sobald der ssh-Server mit dem Befehl `service ssh restart` neu gestartet wurde, sollte die Anmeldung mit Passwort nicht mehr möglich sein.
```
sshuser@1.2.3.4: Permission denied (publickey).
user@PC:~$
```
#### Lesezeichen am Client anlegen
Wenn man es noch komfortabler haben möchte, kann man sich am Client-PC ein Lesezeichen für den ssh-Server anlegen, um die Verbindung noch einfacher herstellen zu können. Dazu wird die Datei `home/user/.ssh/config` angelegt, bzw. geändert:
=== "/home/user/.ssh/config"
```
Host mein_server
User sshuser
HostName 1.2.3.4
port 54683
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
```
## Quellen ## Quellen
- [https://vitux.com/7-methods-to-generate-a-strong-password-in-ubuntu/](https://vitux.com/7-methods-to-generate-a-strong-password-in-ubuntu/) - [https://vitux.com/7-methods-to-generate-a-strong-password-in-ubuntu/](https://vitux.com/7-methods-to-generate-a-strong-password-in-ubuntu/)
- [https://developer-blog.net/ssh-port-aendern/](https://developer-blog.net/ssh-port-aendern/) - [https://developer-blog.net/ssh-port-aendern/](https://developer-blog.net/ssh-port-aendern/)
- [https://de.wikipedia.org/wiki/Liste_der_standardisierten_Ports](https://de.wikipedia.org/wiki/Liste_der_standardisierten_Ports) - [https://de.wikipedia.org/wiki/Liste_der_standardisierten_Ports](https://de.wikipedia.org/wiki/Liste_der_standardisierten_Ports)
- [https://www.thomas-krenn.com/de/wiki/OpenSSH_Public_Key_Authentifizierung_unter_Ubuntu](https://www.thomas-krenn.com/de/wiki/OpenSSH_Public_Key_Authentifizierung_unter_Ubuntu)