SSH Key exportieren

  • Guten Tag!


    Ich möchte gerne von meiner QNAP TS-221 den SSH-Pub-Key auf meinen entfernten Backup-Server exportieren/kopieren, damit sich das QNAP automatisch, per SSH-Key dort anmelden kann und ein Backup über rsync startet.

    Die SSH-Keys habe ich bereits erstellt aber beim versuch, den Pub-Key zu kopieren kam eine Fehlermeldung. Das QNAP kennt den Befehl "ssh-copy-id -i" leider nicht.


    Welchen befehl muss ich verwenden, um den SSH-Pub-Key auf den Backup-Server zu kopieren?


    Vielen Dank!

  • Wenn mit ssh-copy-id nicht funktioniert, kannst Du den Public-Key (meist id_rsa.pub) auch manuell am Zielserver einpflegen (nicht ersetzen!). Das ist üblicherweise:

    /homepfad/.ssh/authorized_keys


    Wie das mit GUI gemacht wird, kenn ich mich noch nicht aus. Bei QuTS Hero kann man den Public-Key für Benutzer Einpflegen, wie das bei QTS ist, weiß ich leider nicht.

  • Also,

    da das QNAP-NAS den Befehl "ssh-copy-id" nicht kennt, möchte ich fragen, ob es einen anderen Befehl gibt, mit dem ich den Schlüssel kopieren kann.

    Ich greife über ssh auf das NAS zu. Es wäre daher gut, wenn jemand den Terminal-Befehl kennen würde.


    Vielen Dank!

  • Hallo tiermutter,


    ich verstehe Deine Antwort leider nicht.

    Soll ich mich an Anthracite wenden?

    Oder ist es eine Frage an Anthracite?

    Ich bin unsicher...

  • postschlumpf: wenn es um CLI (also über SSH) geht, habe ich Dir ja bereits Information geliefert. Nur den genauen Pfad kenne ich nicht und müsstest Du mal nachschauen. Mögliche befehle sind: find, grep, vi, tee, ... ;)


    Anders gefragt, weil bis jetzt nicht ersichtlich ist: Bist Du fit in Linux/CLI oder brauchst Du genaue Befehle von uns vorgekaut? ;)

    Einmal editiert, zuletzt von floh79 ()

  • Moin Leute!


    Ich bin eher so eine mittelhelle Linux-Leuchte : )

    Fortgeschrittener Anfänger könnte man auch sagen.


    Ich habe aber auch weiter herum probiert und ich habe eine Lösung gefunden!


    Da es "ssh-copy-id" leider nicht gibt, habe ich folgenden Befehl versucht und das hat bei meinem QNAP-NAS funktioniert:


    Code
    cat ~/.ssh/id_rsa.pub | ssh user@ip.address "cat >> ~/.ssh/authorized_keys"

    "user@ip.address" habe ich natürlich durch meine Server-Adresse ersetzt.

    Vielleicht braucht das ja auch mal jemand von Euch.

  • Ich greife über ssh auf das NAS zu. Es wäre daher gut, wenn jemand den Terminal-Befehl kennen würde.

    Klar gibt es die Befehle. vi oder echo zum Beispiel ;).


    Vorgehen:

    Du loggst dich per ssh auf deinem Backup-Server ein mit dem User, der dort für das Backup genutzt wird.


    Wenn noch nicht vorhanden, legst du im Home des Users das Verzeichnis .ssh mit mkdir an.

    Code
    ll -d .ssh
    drwx------ 2 Anthracite administrators 4.0K 2021-05-12 21:45 .ssh/

    Wichtig:

    Die Rechte müssen rwx------ sein (mit chmod 700 .ssh setzen) und der Eigentümer muss derjenige sein, um dessen Home-Verzeichnis (gegebenenfalls mit chown ändern) es sich handelt. ssh ist sehr pingelig, was diese Rechte betrifft. Stimmen sie nicht, funktioniert der Login über ssh-Keys nicht.


    Jetzt hängst du deinen öffentlichen Schlüssel mit echo an die Datei authorized_keys an, z. B.

    Code
    echo "ssh-rsa AAAA...== xxxx@nas" >> .ssh/authorized_keys
    ll .ssh/authorized_keys 
    -rw------- 1 Anthracite everyone 5.1K 2021-05-12 21:45 .ssh/authorized_keys

    Wichtig sind auch hier Rechte (diesmal 600) und Eigentümer der Datei.


    Ein Nachteil der Lösung ist, dass so weit ich weiß HBS die SSH-Passphrase für deinen privaten Schlüssel nicht speichert. Daher funktioniert das nur, wenn dein privater Schlüssel keine (bzw. eine leere) Passphrase hat. Das heißt aber, dass ein Angreifer, der auf deinem Ursprungs-NAS (also das NAS, von dem aus das Backup gestartet wird) hat einbrechen können, ohne weiteres Passwort auch auf den entfernten Server kommt.


    Das Problem kannst du lösen, indem du

    1) in authorized_keys vor dem Schlüssel des entfernten Servers ein Kommando angibst, z. B.

    Code
    command="rsync --server --daemon ." ssh-rsa AAAA...

    (wobei ich mittlerweile als Kommando immer ein Skript nehmen würde, in dem die Variable $SSH_ORIGINAL_COMMAND ausgewertet wird, die erlaubten Kommandos ausgeführt und alles andere in einer Datei protokolliert).

    und

    2) einen weiteren ssh-Schlüssel in einer anderen Schlüsseldatei anlegst, diesen

    ebenfalls in die authorized_keys des fernen Servers schreibst, aber ohne Einschränkung auf ein Kommando, und den nutzt du, indem du dich mit ssh -i einloggst.


    Wenn du dann zusätzlich den SSH-Login sicherer machen willst, indem du Anmeldungen am entfernten Server ausschließlich über ssh-Keys zusässt, dann hast du dir aber noch was vorgenommen (so der entfernte Server von Qnap ist). :mcup:

    Es geht aber, und einmal eingerichtet läuft es stabil.

    Ist der entfernte Server hingegen nicht von Qnap, ist das leicht einzurichten.

  • Oh wow,

    das wäre z.B. schon eine Herausforderung für mich : )

    Vielen Dank für diese Lösung!


    Weil ich ja noch nicht all zu fit bin habe ich eine für mich simplere Lösung gefunden:


    1.

    Ich habe auf dem Backup-Server (dem Ziel-Gerät) einen neuen Nutzer angelegt.


    2.

    In diesem Nutzerkonto habe ich ein SSH-Schlüsselpaar erstellt. Dadurch wurden auch gleichzeitig alle notwendigen Verzeichnisse mit den richtigen Rechten angelegt.


    3.

    Auf dem QNAP-NAS (der Quelle) habe ich dann ebenfalls ein SSH-Schlüsselpaar erstellt und mit dem oben genannten Befehl auf den Backup-Server kopiert.

    Code
    cat ~/.ssh/id_rsa.pub | ssh user@ip.address "cat >> ~/.ssh/authorized_keys"

    4.

    Danach habe ich den SSH-Login mit Key getestet


    5.

    Danach habe ich den SSH-Passwort-Login auf dem Backup-Server deaktiviert und ich habe ssh neu gestartet.


    6.

    Sobald mein Backup über rsync läuft, werde ich den SSH-Key auf dem Server auf rsync beschränken. Folgendes habe ich mir aus dem Internet zusammen gebaut. Das wird dann einfach vor den Pub-Key kopiert:

    Code
    command=rsync,no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding


    Ich bin jetzt echt gespannt, ob ich da auf weitere Probleme treffen werde. Vielleicht ist rsync in diesem QNAP-NAS ja auch nur reduziert vorhanden, wer weiß...


    Bei weiteren Problemen melde ich mich wieder!