Für Linux 20.04 groovy
SSH Konfig (ssh_config)
Um die Administration zu vereinfachen kann eine ssh-Konfigurationsdatei erstellt werden.
user@ubuntu:~$ cd .ssh
user@ubuntu:~/.ssh$ nano config
Die Syntax für die Konfigurationsdatei sieht folgendermassen aus, viele weitere Parameter sind möglich.
Host servername
Hostname x.x.x.x
Port 22
User root
IdentityFile /path/to/keyfile.pem
Aufruf einer ssh Verbindung im Terminal mittels Befehl ssh
und dem Parameter (Hostname) aus dem Configfile.
user@ubuntu:~/.ssh$ ssh servername
ssh Key Import / Export
Variante 1 mit ssh-copy-id
- Führe den Befehl
ssh-copy-id
mit dem untenstehenden Parameter auf und gib das Remote System Passwort ein - Zur überprüfung kann die Datei authorized_keys mittels
cat
geöffnet werden
user@ubuntu:~/.ssh$ <strong>ssh-copy-id -i ~/.ssh/id_rsa.pub root@server
root@server:~# cd .ssh
root@server:~/.ssh# ls -l
total 1
-rw------- 1 root root 92 Apr 16 18:17 authorized_keys
root@server:~/.ssh# cat authorized_keys
Variante 2 mit cat
- Verbinde dich mit dem Server via ssh.
- Zeige den Inhalt der Public Key an mittels
cat
. Und kopiere den Inhalt in die Zwischenablage.
user@ubuntu:~/.ssh$ ls -l
-rw------- 1 user user 2655 Apr 16 18:06 id_rsa
-rw-r--r-- 1 user user 575 Apr 16 18:06 id_rsa.pub
user@ubuntu:~/.ssh$ cat id_rsa.pub
ssh user@dns
cd .ssh
bash: cd: .ssh: No such file or directory
- Verbinde dich mittels ssh mit dem Zielserver
- Wechsle ins Home-Verzeichnis
- Erzeuge den Ordner .ssh, falls dieser noch nicht vorhanden ist
- Prüfe, ob die Datei authorized_keys existiert, falls nicht, lege eine neue Datei an
- Kopiere den Inhalt des Public Key in die Datei, speichere diese ab
KEYGEN
user@ubuntu:~$ ssh-keygen -t ed25519 -C "dns pihole"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519): /home/user/.ssh/dns_pihole_ed25519
user@ubuntu:~$ cd .ssh
user@ubuntu:~/.ssh$ ls -l
insgesamt 16
-rw-rw-r-- 1 User User 227 Apr 16 17:59 config
-rw------- 1 User User 444 Apr 16 20:13 dns_pihole_ed25519
-rw-r--r-- 1 User User 92 Apr 16 20:13 dns_pihole_ed25519.pub
-rw-r--r-- 1 User User 444 Apr 16 18:14 known_hosts
user@ubuntu:~/.ssh$
-t
für Keytype -C
für Comment anstelle User und Computername am ende des pub Key
SSH Server Config (sshd_config)
Mittels systemctl
kann geprüft werden ob der ssh Service serverseitig läuft.
user@server ~# systemctl status sshd
- Für Anpassungen am ssh Server kann die Configdatei unter:
/etc/ssh/sshd_config
angepasst werden - Für Anpassungen der ssh Client Einstellungen (Global) kann die Configdatei unter:
/etc/ssh/ssh_config
bearbeitet werden, die Werte werden jedoch bei Verbindung mit der ssh Config des Clients überschrieben, falls vorhanden
Achtung: Mit der Anpassung des Parameters PasswordAuthentication auf den Wert no ist ein Login nur noch mit ssh Key möglich
#Port 22
PermitRootLogin yes
#PasswordAuthentication yes
SSH Agent (ssh-add)
Ein SSH-Agent sorgt dafür, dass die Passphrase zu einem Schlüssel nicht bei jeder Verbindung neu eingegeben werden muss. Dabei sind einzelne Befehle ganz praktisch.
ssh-add -D
Entfernt alle Identitätenssh-add -l
Listet alle Identitäten auf
user@ubuntu:~$ ssh-add -D
All identities removed.
user@ubuntu:~$ ssh-add -l
256 SHA256: xvxcxvxcxvxcvxcxvxcvxcxvxcxvcxvxvxcvxcxv Description (ED25519)
Der ssh Agent läuft bei den meisten Distro’s mit Gnome Gui automatisch, jedoch nicht bei Server Distro’s ohne Gui.
- Mittels
ps aux
prüfen, ob der Agent läuftuser@server ~# ps aux | grep ssh-agent
- Mittels
eval
den Agent startenuser@server ~# eval "$(ssh-agent)" Agent pid 12345
- Mittels
ssh-add
Schlüssel zum Agent hinzufügen und ev. Passphrase eingeben (Gilt bis beendigung des Terminal)user@server ~# ssh-add ~/.ssh/xxxx
Datei und Verzeichnis Berechtigungen
Sind die Berechtigungen für die Verzeichnisse und Schlüssel nicht korrekt gesetzt, kann dies zu Problemen führen. Dies wird normalerweise mit folgender Fehlermeldung angezeigt:
Permissions 0777 for '/Users/username/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
Folgende Berechtigungen sollten verwendet werden:
- .ssh (Verzeichnis)
700 (drwx-----)
- id_rsa (Privater Schlüssel)
644 (-rw-r-r--)
- .pub (Öffentlicher Schlüssel)
600 (-rw-----)
Die Berechtigungen können folgendermassen angepasst werden:
chmod 700 /home/$USER/.ssh
Too many Authentication Failures
Versucht die das System sich mit zu vielen Schlüsseln anzumelden kann es sein, dass eine
Fehlermeldung Too many Authentication Failures
erscheint. Um dies kurzfristig zu umgehen und sich trotzdem anmelden zu
können sind folgende beiden Methoden möglich.
Methode: No Public Key
user@ubuntu:~$ ssh -o PubkeyAuthentication=no root@server
Methode: Preferred Authentication Password
user@ubuntu:~$ ssh -o PreferredAuthentications=password user@server