Kurzanleitung SSH Key Authentifizierung auf einem rootserver einrichten

  • Kurzanleitung SSH Key Authentifizierung auf einem rootserver einrichten

    - Man erstellt einen SSH Key auf dem lokalen Rechner

    Code
    ssh-keygen -b [Schlüsselstärke] -t [Schlüsseltyp]
    
    
    Beispiel:
    ssh-keygen -b 4096 -t rsa

    - Als nächstes kopiert man seinen öffentlichen Schlüssel auf seinen Server

    Code
    scp ~/.ssh/id_[Typ].pub [Benutzer]@[Host]:
    
    
    Beispiel:
    scp ~/.ssh/id_rsa.pub root@srv27595.blue.kundencontroller.de:

    - Als nächstes loggt man sich auf dem Server ein

    Code
    ssh [Benutzer]@[Host]
    
    
    Beispiel:
    ssh root@srv27595.blue.kundencontroller.de

    - Nun erstellt man das SSH Verzeichnis wo dann der Key rein soll

    Code
    mkdir -p ~/.ssh/

    - Jetzt erstellen wir den Key an sich auf dem Server. Wenn die Datei schon vorhanden ist wird er einfach nur Angehängt.

    Code
    cat ~/id_[Typ].pub >> ~/.ssh/authorized_keys
    
    
    Beispiel:
    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

    - Im nächsten Schritt löschen wir die hochgeladene Datei

    Code
    rm -f ~/id_[Typ].pub
    
    
    Beispiel:
    rm -f ~/id_rsa.pub

    - Nun setzen wir die korrekten Rechte sonst gibt es mitunter Probleme

    Code
    chmod 0600 ~/.ssh/authorized_keys
    chmod 0700 ~/.ssh/

    - Jetzt loggen wir uns aus

    Code
    exit

    - Und loggen uns zur Verifizierung wieder ein (es sollte nun kein Passwort mehr abgefragt werden)

    Code
    ssh [Benutzer]@[Host]
    
    
    Beispiel:
    ssh root@srv27595.blue.kundencontroller.de
  • Der ganze Punkt mit dem Key auf den Server kopieren kann man auch abkürzen:

    Dazu auf dem Client einfach:

    Code
    ssh-copy-id user@host

    Dann wird der Key automatisch auf den Server kopiert, das .ssh Verzeichnis erstellt (falls es noch nicht existiert) und die authorized_keys Datei modifiziert.

    --
    Ciao!

    Linux Nutzer seit über 20 Jahren. I ❤️ Freedom!

    Offizieller Proton-Botschafter aus der Schweiz 🇨🇭 😅

    Meine Haupt-Distribution ist Ubuntu.

    Mein Blog: https://rueegger.me

    Wer meinen sinnlosen Gedanken folgen möchte, kann dies gerne auf Mastodon tun: https://swiss.social/@srueegger

  • Ich stelle dabei noch gerne auf ED2559 um. Und eine Benennung hilft sobald sich die Schlüsselanzahl erhöht um auch in Zukunft alles richtig zuordnen zu können.

    Beispiel:

    ssh-keygen -t ed21559 -C "Für-meine-Nextcloud"

  • Das ganze nochmal als Video:

    Kurzanleitung Linux SSH Key Authentifizierung auf einem rootserver einrichten
    Eine kurze Anleitung wie man einfach seinen SSH Key in seinen Server einspielen kann.
    odysee.com
  • Ich hab mal kurz ne Frage dazu, da ich gerade dabei bin mir nen Server zu mieten als Connectionserver in mein Heimnetz.
    Ich würde das ganze in Zukunft gerne auch über ssh Keys machen.
    Kann ich auf dem Weg für einen User mehrere Schlüssel hinterlegen, da ich das für mehrere Geräte einrichten will, oder nehme ich dann den Private Key auf die anderen Geräte mit? Was ist hier so die BestPractise?

    provozierter Experte für semifachliche Individualangelegenheiten

  • Ich hab mal kurz ne Frage dazu, da ich gerade dabei bin mir nen Server zu mieten als Connectionserver in mein Heimnetz.
    Ich würde das ganze in Zukunft gerne auch über ssh Keys machen.
    Kann ich auf dem Weg für einen User mehrere Schlüssel hinterlegen, da ich das für mehrere Geräte einrichten will, oder nehme ich dann den Private Key auf die anderen Geräte mit? Was ist hier so die BestPractise?

    Korrektur wieder mein fehler. Ich habe nur einen Key privat und habe ihn auf meine Client geräte kopiert. Also quasi 1 key set pro user.

  • Ok, das ganze will bei mit auf dem Pi mit dem Ubuntu Server Image nicht funktionieren.

    Ich habe ein Schlüsselpaar erstellt mit
    ssh-keygen -b 4096 -t rsa -f ~/.ssh/marioPi400

    Dann den Schlüssel übertragen mit

    ssh-copy-id mario@pi-server

    Hab mich dann erstmal mit PW eingeloggt und geschaut ob in ~/.ssh/authorized_key auch der Schlüssel ist.
    Danach habe ich in der /etc/ss/sshd_config folgendes geändert:

    PubkeyAuthentication yes

    AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2

    PasswordAuthentication no

    Dann habe ich mit sudo service ssh restart den ssh Dienst neu gestartet und dann mit exit die Sitzung verlassen.

    Dann habe ich mit ssh mario@pi-server verbunden.... musste aber das Passwort nutzen.
    Hab dann den Pi neu gestartet und es nochmal versucht, wieder nur Passwort.
    Eigentlich sollte doch jetzt ein Login mit Passwort nun gar nicht mehr möglich sein, oder?

    provozierter Experte für semifachliche Individualangelegenheiten

  • Wie meinst Du das?
    Da ich mit ssh-copy-id geareitet habe wurde der Schlüssel in die Datei ~/.ssh/authorized_keys geschrieben.
    Ich habe mir die ja angeschaut und die erste Zeile ist ein langer string mit meinen Benutzer am Ende.

    Jetzt beim schreiben macht es "klick"
    Ich hätte beim Verbindungsaufbau den Pfad zum Key aufrufen müssen... ist ja auch irgendwie logisch.
    Ok, ich biege das mal grade und probiert das nochmal. Beim Verbinden noch die Keydatei aufrufen zu müssen würde nerven.

    Interessanter Weise komme ich gerade nicht mehr auf den Server

    mario@Pi400-Mario:~ $ ssh maio@pi-server

    maio@pi-server's password:

    Permission denied, please try again.

    maio@pi-server's password:

    Permission denied, please try again.

    maio@pi-server's password:

    maio@pi-server: Permission denied (publickey,password).


    Bin gerade froh, dass das nur der Testserver ist und kein Livesystem.

    provozierter Experte für semifachliche Individualangelegenheiten

  • Da du einen vom Standard abweichenden Namen für den Schlüssel vergeben hast, musst du den Schlüssel mit der Option -i angeben.

    Würde dir aber empfehlen, eine Config-Datei anzulegen. Wie das geht, habe ich hier beschrieben:

    Sojan
    22. April 2022 um 16:17
    Zitat von Manpages SSH

    -i Identitätsdatei

    Wählt eine Datei, aus der die Identität (der private Schlüssel) für asymmetrische Authentifizierung gelesen wird. Sie können auch festlegen, dass eine öffentliche Schlüsseldatei den entsprechenden privaten Schlüssel verwendet, der in ssh-agent(1) geladen wird, wenn die private Schlüsseldatei nicht lokal verfügbar ist. Die Vorgabe ist ~/.ssh/id_rsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ecdsa_sk, ~/.ssh/id_ed25519, ~/.ssh/id_ed25519_sk und ~/.ssh/id_dsa.

    Einmal editiert, zuletzt von Sojan (7. Oktober 2023 um 08:44)

  • Kann ich auf dem Weg für einen User mehrere Schlüssel hinterlegen

    Du kannst auf einem Server so viele schlüssel hinterlegen wie du möchtest, aber man hat meist nur einen persönlichen schlüssel den man dann immer nutzt. Daher, Pass gut drauf auf und hinterlege ein anständiges Kennwort.

    Ich hätte beim Verbindungsaufbau den Pfad zum Key aufrufen müssen... ist ja auch irgendwie logisch.

    Du kannst das auch fest in die ssh config eintragen:

    Code
    Host NAME IP
    	User root
    	HostName IP
    	IdentityFile ~/.ssh/id_ed25519

    Namen und ups kann man bei Host so viele eintragen wie man Will, macht aber nur bei Namen Sinn.

    Wenn du mit einem anderen User arbeitest musst du den natürlich ändern sowie gegebenenfalls den Pfad zum schlüssel.

    Wenn du mit Jumphosts arbeitest sieht das dann so aus:

    Code
    Host NAME IP
    	User root
    	HostName IP
    	IdentityFile ~/.ssh/id_ed25519
    	IdentitiesOnly yes
    	ForwardAgent yes
    	ProxyJump NAMEdesJumpservers

    Rollenspiel.Monster -Deine Fediverse Rollenspiel Nodes

    GPG

    System: TUXEDO Aura 15 - Gen1, AMD Ryzen 7 4700U, 32GB RAM, 1TB M.2 SATAIII, EndeavourOS(Gnome[Wayland])

  • Ich bin mittlerweile dazu über gegangen, auf jedem Client einen Key zu generieren und diesem halt den Namen des Rechners zu geben. So kann ich - falls mal irgendwie ein Gerät kompromittiert wird - die Rchte bzw den Key gezielt entziehen.

    Es muss ja nur jemand irgendwie an den Key kommen oder der Rechner wird geklaut oder was auch immer. Dann kann ich jederzeit mit einem anderen Rechner zugreifen und besagten Key löschen und gut ist. So handhabe ich es auch in der Nextcloud. Für jeden Zugriff wird ein Passwort generiert. Da kann ich dann gezielt TB aussperren oder eine App auf dem iPhone, etc

    💾 AMD EPYC 7452 (8 Cores) 40GB | 💾 Unraid Homeserver i5-4570 16GB

    💻 Ryzen 9 7900X RX7800XT 32GB | 💻 MacBook Pro M2Pro 32GB

    EndeavourOS <3

  • Ist nicht verkehrt der Gedanke Stardenver
    Konnte da heute nichts mehr machen, haben den Geburtstag von meiner jüngsten nachgefeiert.
    Jetzt habe ich Kopfschmerzen und bin erledigt. Werde das wohl morgen mal so einrichten.

    provozierter Experte für semifachliche Individualangelegenheiten

  • So, ich habe mir das ganze mit den Keys und der Config mal genauer angeschaut.
    Sichert ihr die Keys, gerade die privaten nochmal extra? Ich würde hier ja ganz schwwer zu einem JA tendieren.
    Zum einen kann einem immer ein Datenträger abrauchen, zum anderen kann ich den so bei einem Systemwechsel einfach neu einfügen.
    Daher, wieso frage ich eigentlich, macht ja nur Sinn das zu tun.

    Ich Danke euch auf jeden Fall, wieder was gelernt was mein System sicherer macht und dabei noch das Arbeiten für mich einfacher.

    provozierter Experte für semifachliche Individualangelegenheiten

  • Hi,

    ich habe wie schon gesagt. Einen Key pro user auf mehreren Geräten. Wodurch er gesichert ist. Ich verschlussele .ssh mit encfs . Wegen schutz bei diebstahl. Zusätzlich ist mein Hauptkey auf einen usb stick an einem anderen Ort. Auf Serverseite nutze ich privat nur anbieter mit Rescuesystem oder vnc Zugang als letzter Ausweg.


    Für die Geräte kommunikation untereinander hat jedes system seinen eigenen Key.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!