SSH-Zugriff auf TS-230 via Visual Studio Code / Remote SSH

  • Hallo Comunity,


    auf Grund der hohen Kosten/mangelnden Verfügbarkeit der Raspberry Pi´s, möchte ich mein TS-230 Nas nutzen, um Home Assistance (Smart Home) in einem Docker-Container darauf laufen zu lassen.


    Um die Konfigurationsdateien leichter zu bearbeiten, möchte ich gerne mit VS-Code und der Erweiterung "Remote SSH" auf das Nas zugreifen. Via Putty, Powershell und Terminal im VS-Code klappt die Verbindung problemlos inkl. schreiben.


    Leider kann ich mit VS-Code über die Erweiterung Remote SSH keine Verbindung aufbauen, und bekomme nach Eingabe des Passwortes für den NAS-Zugriff (Einoggen als Benutzer mit Administratorrechten) folgende Fehlermeldung:




    Die Hinweise nach intensivster Googlesuche haben nicht zum Erfolg geführt:

    - löschen des Verzeichnisses ~home/user/.vscode-server

    - Änderung der /etc/ssh/sshd_config (AllowTCPForwarding yes , PermitTunnel yes, TCPKeepAlive yes)
    - Änderung der Einstellungen Remots SSH


    Im Anhang schicke ich die sshd_config mit (zum hochladen um die Dateiendung .txt).


    Vielleicht kann mir jemand von Euch einen Tip geben, wo ich noch suchen bzw welche Einstellungen ich vornehmen muss, um Zugriff auf das Nas via VSC zu bekommen. (muss ich vielleicht noch SSH-Keys generieren / angeben und wenn, wo und wie?)


    Besten Dank schon mal im voraus.


    Benny

  • xs400dohc

    Vorweg: VS-Code kenne ich nicht. Daher kann ich keine exakte Auskunft geben, sondern eher allgemein zu ssh.


    Sind denn die Änderungen in sshd_config überhaupt aktiv? Die Datei ändern bringt alleine nichts, sondern der ssh-Dämon muss dies mitkriegen. Dazu muss sshd nach der Änderung neu gestartet werden. Wenn ich mich recht erinnere, baut qts aber beim Start dieses Dämons die Datei sshd_config wieder neu auf, womit deine Änderungen weg wären und nicht zur Anwendung kämen. Mit letzterem kann ich mich irren, bin mir da nicht mehr so sicher, aber einen Reboot überleben Änderungen in /etc/ssh/sshd_config definitiv nicht.


    Eine Lösung besteht darin, sshd mit einer alternativen Konfiguration (kopierte Originaldatei + deine Änderungen) zu starten. Natürlich macht einem qts auch das nicht leicht, sondern die Konfiguration des Dämon-Managers muss dafür angepasst werden. Der folgende Code erledigt dies:

    Code
    cp -p /etc/daemon_mgr.conf /etc/daemon_mgr.conf.bak
    sed '/^DAEMON[0-9]* = sshd,.*$/s/-f  *[^ ][^ ]* /-f \/Pfad\/zu\/deiner\/sshd_config /' /etc/daemon_mgr.conf.bak >/etc/daemon_mgr.conf
    killall sshd

    Wenn du möchtest, dass deine Änderungen Reboot-fest sind, musst du diesen Code in autorun.sh setzen und für deine sshd-Konfig einen Pfad wählen, der zu dem Zeitpunkt im Bootprozess bereits gemountet ist.



    Weitere Fehlermöglichkeiten abseits von sshd:

    - Der Benutzer hat nicht die nötigen Rechte. Nimm mal testweise Admin.

    - Es fehlt ein sudo vor dem Aufruf eines Kommandos

    - Wenn das Login an der Passworteingabe scheitert, dann können ssh-Keys die Lösung sein. Probier erst mal mit Keys ohne Passphrase, da gibt es weniger Fehlermöglichkeiten.

  • Hallo Anthracite,


    besten Dank für Deine schnelle Antwort.


    Ich bin (leider) in der Windoof-Welt groß geworden und daher bei Linux immer wieder etwas verwirrt.

    So weit ich die sed-Zeile verstanden habe, wird damit der Pfad der sshd_config geändert


    In der Datei /etc/daemon_mgr.conf steht bei mir:


    Code
    DAEMON35 = sshd, start, /usr/sbin/sshd -f /etc/config/ssh/sshd_config -p 22

    Verstehe ich das richtig, dass ich nicht die Datei /etc/ssh/sshd_config sondern die Datei /etc/config/ssh/sshd_config bearbeiten muss oder beide?


    Der Tip mit dem admin-Konto scheint der richtige Ansatz zu sein. Bei der Suche danach, wie man den admin aktiviert (bei mir deaktiviert, da von QNAP empfohlen, siehe Link) bin ich auf folgenden Link gestossen: https://docs.qnap.com/operatin…tratorkonto-61C33F71.html.

    Dort heißt es:

    Das Standardkonto "admin" muss in zwei bestimmten Szenarien aktiviert werden: wenn Sie über Secure Shell (SSH) oder Telnet auf das QNAP turbo NAS zugreifen müssen und wenn Sie auf Console Management zugreifen müssen.

    Mit dem admin komme ich nun schon einen Schritt weiter.

    Die Lösung des einen Problems führt direkt zum nächsten Problem: Beim entpacken des tar-Archives scheint nicht genug Platz vorhanden zu sein:

    Wie bekomme ich nun mehr Platz für die tar-Datei? Bin leider absoluter DAU (Dümmster Anzunehmender User) was NAS angeht ;)

  • Bin leider absoluter DAU

    Dafür operierst du aber recht ungeniert am offenen Herz des NAS.

    Momentan laufen deine Aktionen ins RAM-File-System und sind, wenn du Glück hast und keine Konfigurationsdateien verändert werden, nach einem Reboot wieder weg.


    Was willst du denn jetzt auf dem NAS machen? Zusätzliche Tools im System installieren?

    Das geht so wie du es machen willst nicht.

    Du brauchst dazu QPKGs oder Docker-Container.

  • Verstehe ich das richtig, dass ich nicht die Datei /etc/ssh/sshd_config sondern die Datei /etc/config/ssh/sshd_config bearbeiten muss oder beide?

    Weder noch. Die beiden Dateien werden von qts automatisch geändert, entweder beim sshd-Restart oder beim Reboot des NAS. Alle Änderungen darin gehen verloren.


    Damit die Änderungen einen Reboot überleben, musst du dem sshd-Dämon mit einer anderen Konfigurationsdatei starten. Die obigen Zeilen im Code machen genau dies, und die sind dafür geschrieben, dies rebootfest zu erledigen, indem sie in die autorun.sh (Klick) eingetragen werden.


    Der Tip mit dem admin-Konto scheint der richtige Ansatz zu sein.

    Wenn du sshd ohnehin mit einer anderen Konfigurationsdatei startest, kannst du da auch weitere User eintragen, die sich einloggen dürfen. Dann geht das auch den den Users. Aber erst mal mit Admin testen, damit geht es potentiell eher.

    Wie bekomme ich nun mehr Platz für die tar-Datei?

    Zu deinem Verständnis: Die Qnap-NAS (die der Konkurrenz übrigens auch) haben das Root-Dateisystem nicht auf einer Festplatte, sondern in der Ramdisk. Beim Systemstart werden alle wichtigen Dateien entweder dorthin kopiert oder oftmals neu erstellt mit den Konfigurationen, die du in dem Browser vorgenommen hast. Das heißt, sämtliche Änderungen, die du im Root-Dateisystem vornimmst, sind nach dem nächsten Reboot wieder weg. Die einzige Möglichkeit, dass Änderungen auch nach Reboot wieder da sind, besteht darin, in der oben erwähnten autorun.sh ein Skript aufzurufen, welches diese Änderungen erneut vornimmt.


    Da Root in der RAM-Disk liegt, ist Qnap bemüht, den Platz möglichst gering zu halten, gerade für Geräte mit relativ wenig RAM. Deswegen erhältst du den Fehler "No space left", weil das Paket nicht entpackt werden kann. Man kann die Root-Partition vergrößern über den mount-Befehl. Besser ist es aber, die Datei auf einer Datenpartition zu entpacken. Ob du in deinem Programm einen Pfad wählen kannst, weiß ich nicht. Notfalls indem du /root/.vscode-server als symbolischen Link auf deine Datenpartition anlegst (den man dann auch gleich noch zusätzlich in autorun.sh setzen kann).


    Dann ist noch zu bedenken, dass qts zwar auf Linux basiert, aber es ist nicht vollständig. Da fehlt immer mal wieder ein Programm. In deinem Log-File gibt es auch schon die Beschwerde "printenv: command not found".


    Ob du das jetzt über einen Container, wie dr_mike empfiehlt, besser hinkriegst, weiß ich nicht. Virtuelle Maschinen laufen leider auf deinem NAS nicht, sonst wäre das meine Empfehlung.


    Bin leider absoluter DAU (Dümmster Anzunehmender User) was NAS angeht

    Das ist jetzt ein Problem, für das ich keine kurzfristige Lösung habe.

  • Besten Dank für Eure Hilfe.


    Ich merke schon, dass das wohl (noch) eine Nummer zu groß für mich und meine begrenzten Kenntnisse ist. Habe mir das wohl zu einfach vorgestellt. Dann muss ich mal schauen, wie ich die Konfigurationsdateien von Home Assistant ohne Visual Studio Code Anbindung bearbeite.


    Aber nochmals vielen Dank :*

  • Ich verstehe den Ansatz mit Remote-SSH nicht ganz. Ich vermute mal, dass du Home-Assistant als Docker Container laufen hast und den "Config" Ordner von Home-Assistant irgendwo auf dem NAS liegen hast. Den kannst du dann doch einfach als Laufwerk auf deinem Windows Rechner einbinden und dann dort mit VS-Code die Dateien bearbeiten. Warum so umständlich mit Remote-SSH?