Folgend wird erklärt, wie du einen SSH-Key auf dem Host-Server einer bestehenden Storage Box hinterlegst. Dies funktioniert auch in Subaccounts.
Bevor du diesem How-To folgst, prüf im Überblick deiner Storage Box in der Hetzner Console ob SSH-Support aktiviert ist. Wenn du den SSH-Key über SSH auf dem Host-Server hinterlegen möchtest und der Support noch nicht aktiviert ist, wähl die Aktion "Einstellungen ändern" und aktiviere SSH-Support jetzt. Beachte, dass es nach der Aktivierung ein paar Minuten dauern kann, bevor deine Storage Box per SSH erreichbar ist.
-
SSH-Key generieren
Du kannst mittels
ssh-keygenein neues SSH-Schlüsselpaar generieren. Führe den Befehl auf dem Gerät aus, über das du dich mit der Storage Box verbinden willst.local-device> ssh-keygen Generating public/private ed25519 key pair. Enter file in which to save the key (/root/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_ed25519 Your public key has been saved in /root/.ssh/id_ed25519.pub The key fingerprint is: SHA256:CXP3We+/Ho+zMWWDZrU3owpqQlie1NLfITUMCJJXEIg root@local-device The key's randomart image is: +--[ED25519 256]--+ | ..o+=...o | | E o.. . + | | . = . o . .. | | + * + o oo..| | = o S o ++ ==| | . + . .o .+=| | . . .o..| | . .. . . .++| | o. . +=+| +----[SHA256]-----+Beachte, dass
ssh-keygenmit den Standardeinstellungen einen bereits existierenden SSH-Key überschreibt! Du kannst alternativ mit dem Parameter-feinen anderen Dateipfad angeben.
-
SSH-Key hochladen
Auf deinem Gerät sollten nun sowohl der Private wie auch der Public Key liegen. Hinterlege den Public Key nun auf dem Host-Server deiner Storage Box. Wähl dafür eine der folgenden Optionen:
Warnung: Option 2 und Option 3 laden den Key mit
scphoch, wodurch die gesamte Datei.ssh/authorized_keysüberschrieben wird - dabei gehen alle dort bereits hinterlegten Keys verloren, einschließlich eines beim Erstellen der Storage Box hinterlegten Keys oder des Keys im jeweils anderen Port-Format. Jede dieser Optionen richtet nur einen einzelnen Port ein; nutzt du beide nacheinander, überschreibt die zweite die erste. Wenn du vorhandene Keys behalten oder beide Ports (22 und 23) nutzen möchtest, verwende Option 1 (install-ssh-key), die den Key in beiden Formaten hinterlegt, ohne vorhandene Keys zu entfernen.Option 1: Über SSH
Führe folgenden Befehl aus, um den Public Key automatisch für beide SSH-Ports auf dem Host-Server deiner Storage Box zu hinterlegen:
local-device> cat ~/.ssh/id_ed25519.pub | ssh -p23 uXXXXX@uXXXXX.your-storagebox.de install-ssh-key uXXXXX@uXXXXX.your-storagebox.de's password: Key No. 1 (ssh-ed25519 user@host) was installed in RFC4716 format Key No. 1 (ssh-ed25519 user@host) was installed in OpenSSH formatAnschließend ist ein Login auf der Storage Box mit dem SSH-Key und ohne Passworteingabe möglich.
Option 2: Erweiterter SSH-Dienst auf Port 23 (SFTP/rsync/BorgBackup)
Für Port 23 wird der Public Key in dem einzeiligen OpenSSH-Format benötigt.
-
Upload via
ssh-copy-id(ab OpenSSH 8.5)ssh-copy-id -p 23 -s uXXXXX@uXXXXX.your-storagebox.de -
Upload ohne
ssh-copy-id(manuell)Falls du ein älteres OpenSSH einsetzt, kannst du den Public Key auch manuell hochladen:
ssh -p 23 uXXXXX@uXXXXX.your-storagebox.de mkdir .ssh scp -P 23 .ssh/id_ed25519.pub uXXXXX@uXXXXX.your-storagebox.de:.ssh/authorized_keys
Option 3: SSH-Dienst auf Port 22 (SFTP)
Für Port 22 muss der Public Key in das RFC4716-Format konvertiert und dann hochgeladen werden.
-
In das RFC4716-Format konvertieren
ssh-keygen -e -f .ssh/id_ed25519.pub > .ssh/id_ed25519_rfc.pubDer Public-SSH-Key sollte nun wie folgt aussehen:
cat .ssh/id_ed25519_rfc.pub ---- BEGIN SSH2 PUBLIC KEY ---- Comment: "256-bit ED25519, converted by root@local-device" AAAAC3NzaC1lZDI1NTE5AAAAIA+mKvwKjsBCweAMcDAQlLMnsH9L95iNyUks+Meb+pDa ---- END SSH2 PUBLIC KEY ---- -
Upload
echo "mkdir .ssh" | sftp uXXXXX@uXXXXX.your-storagebox.de scp .ssh/id_ed25519_rfc.pub uXXXXX@uXXXXX.your-storagebox.de:.ssh/authorized_keys
-
-
SSH-Key testen
Je nach hochgeladenem SSH-Key-Format ist nun ein Login ohne Passwort auf Port 22 und/oder Port 23 möglich:
sftp -P <22 oder 23> uXXXXX@uXXXXX.your-storagebox.de Connected to uXXXXX.your-storagebox.de. sftp> quit