[Howto] SSH ohne Passwort Abfrage

  • ssh erlaubt es einem Administrator, sich über Netz mit einem Passwort an dem Server anzumelden. Da die meisten Administratoren sich nicht dazu durchringen können, sich schwer knackbare Passwörter zu vergeben, da sie doch des öfteren vergessen werden, oder einfach nur schwer zu tippen sind, werden einfache Passwörter benutzt.


    Da root/admin alles darf, sollte man, gerade wenn das System aus dem Internet erreichbar ist, sehr komplexe Passwörter benutzen. Mit Putty kann man nun den ssh Zugang so gestalten das der Zugang unabhängig vom Passwort durch authorized_keys geschieht. Man benötigt dadurch nur einen klick und hat eine shell.



    PuTTY und PuTTYgen
    Man benötigt das Client Programm PuTTY und den Keygenerator PuTTYgen (http://www.chiark.greenend.org…atham/putty/download.html). Diese Programme sind kostenlos im Internet verfügbar.



    RSA Schlüssel generieren
    Nach dem Start des Programmes PuTTYgen muss auf den Button Generate geklickt werden. Danach wird der Schlüssel generiert, indem man im PuTTYgen-Fenster die Maus bewegt, bis der Balken die volle Länge erreicht hat.


    Danach wird der Schlüssel berechnet und angegeben. Kopiert nun den Teil, der unter Public key for pasting into OpenSSH authorized_keys file: in die Zwischenablage (markiert den Teil und drückt Strg + C).


    Danach klickt auf den Button Save private key. Speichert die Datei auf die lokale Festplatte. Dies ist die Gegendatei, mit der ihr euch später an dem Server identifizieren.







    Installieren der authorized_keys
    Öffnet nun eine Session zum Linux-Server (QNAP NAS). Geht in das Home-Verzeichnis des Anwenders, der sich mit diesem Schlüssel anmelden soll. Dort legt, falls nicht vorhanden, das Verzeichnis .ssh an. Wechselt in dieses Verzeichnis und erstellen die Datei authorized_keys, z.B. mit dem Programm vi.
    Dort kopiert nun den Teil des Schlüssels aus der Zwischenablage rein (Falls ihr PuTTY benutzen, reicht ein Klich auf die rechte Maustaste). Speichert diese Datei nun ab. Ihr könnt die Session nun beenden.




    PuTTY konfigurieren
    Startet den PuTTY Client. Tragt euren Servernamen bei Hostnamen ein und klickt SSH an. Klickt links auf Connection und tragen bei [/i]Auto-login name:[/i] den Usernamen des Anwenders ein (admin bei QNAP für root), der sich mit dem Schlüssel anmelden soll (der Username, von dem ihr im Home-Verzeichnis die authorized_keys erstellt haben). Klickt nun im Baum weiter unten auf Auth[ (Connection -> SSH -> Auth). Tragt nun bei Private key file for authentication den Pfad und Dateinamen des Keyfiles auf Ihrer lokalen Festplatte ein, welches ihr mit dem Tool PuTTYgen gespeichert haben (oder klicke auf Durchsuchen und geben den Pfad so an). Danach klickt wieder auf Session, gebt bei Save Sessions der Session noch einen Namen und speichern dies mit einem Klick auf Save ab.


    Testet nun die Verbindung. Ein Doppeltklick auf die eben gespeicherte Session sollte eine PuTTY-Session zu dem Server öffnen.


    Es sollte keine Abfrage nach Usernamen und kein Passwort mehr abgefragt werden, ihr sollten direkt auf die Shell-Ebene gelangen.
    Falls dies nicht der Fall ist, prüft ob in der Datei /etc/ssh/sshd_config die Option PubkeyAuthentication auf yes steht (steht default bei QNAP auf yes).




    Vorsicht
    Das Keyfile, welches lokal auf der Festplatte liegt, ist die Zugangsberechtigung auf euren Server. Ihr solltet damit so sensibel umgehen wie mit der PIN eurer EC Karte. Mit dieser Datei kann sich jeder mit Admin rechten auf eurem NAS via ssh anmelden. Egal ob ihr das Passwort ändert oder nicht.

  • Zunächst mal vielen Dank für diese Anleitung.


    Es funktioniert auch alles wunderbar bis zum Neustart der TS-509. Da ist dann die Datei authorized_keys verschwunden und auch Änderungen an /etc/ssh/sshd_config sind weg. sshd_config hat wieder das Datum vor der Änderung.


    Wird da irgendwie beim Reboot ein Default-Zustand wiederhergestellt? Wie und wo?

  • Zitat von "hgdo"

    Zunächst mal vielen Dank für diese Anleitung.


    Es funktioniert auch alles wunderbar bis zum Neustart der TS-509. Da ist dann die Datei authorized_keys verschwunden und auch Änderungen an /etc/ssh/sshd_config sind weg. sshd_config hat wieder das Datum vor der Änderung.


    Wird da irgendwie beim Reboot ein Default-Zustand wiederhergestellt? Wie und wo?


    Hatte das Problem auch. Habe mir in der autostart.sh etwas rein gesetzt was den key dann bei einem neustart immer wieder in die Datei schreibt.


    autorun.sh

    Code
    echo "ssh-rsa xxxxZVuKLroNU0qRtaFLJKZaQAcbmBgqvQ7ZVbPa7NcjKZumey-2dwqqd" > /root/.ssh/authorized_keys
    chmod 600 /root/.ssh/authorized_keys
  • Da bin ich ja schon mal froh, dass es nicht (wieder) an meinen mangelnden Linux-Kenntnissen lag.


    Ich hab mir authorized_keys an anderer Stelle gespeichert und kopiere es in autorun.sh nach /root/.ssh. Das funzt auch.


    Aber etwas unbefriedigend ist das Ganze schon.

  • Auf der TS-409 klappt es bei mir ohne jegliche Probleme. Alles etwas merkwürdig :roll:

  • Ich denke das es etwas mit der FW zu tun hat. Hatte das Problem am Anfang mit der letzten Stable Release. Mit der Beta war der Eintrag in der Autorun schon drin. Daher kann ich nicht sagen ob das Problem dort nicht mehr existiert.