Fang vielleicht lieber erstmal so an:
Der User mit welchem Du auf dem QNAP via Shell die Docker-Container (inkl. sudo und "ohne" Passwortabfrage) startest und stoppst, hat ja wohl irgendeine Form von Login via SSH (nennen wir den User einfach mal "user1", Du ersetzt bei Dir bitte "user1" durch den User, welchen Du dafür verwendest).
Mit genau "diesem" User ("user1") musste Du Dich auch von HomeAssistant an der QNAP via SSH anmelden. Wenn Du Dich via SSH mit "user1" an der QNAP anmeldest und einen Befehl via "sudo" ausführst, wirst Du erneut nach dem Passwort von "user1" gefragt? Falls ja, muss das weg. Das kannst Du in der sudoers-Datei ändern. Dazu führst Du einfach folgenden Befehl aus:
sudo visudo
(da ist direkt eine Syntax-Überprüfung mit dabei), alternativ kann man die Datei /etc/sudoers auch editieren. Folgendes muss nun rein:
user1 ALL=(ALL) NOPASSWD:/usr/bin/dockerd
Das sollte dann auf Docker beschränkt sein, falls das nicht funktioniert, gibt es auch noch die Möglichkeit, die Beschränkung auf Docker aufzuheben, das sieht dann so aus:
user1 ALL=(ALL) NOPASSWD:ALL
Dann ist es möglich, ein sudo ohne erneute Passwortabfrage durchzuführen. Auch mal ausprobieren, ob es funktioniert.
Nachdem der Teil durch ist, bleibt noch die Sache mit der passwortlosen SSH-Verbindung. Auf der HomeAssistant-Kiste via z.B. Terminal-Addon erzeugst Du ein neues Schlüsselpaar z.B. via
ssh-keygen -b 2048 -t rsa
. Der öffentliche Teil des Schlüssels muss jetzt auf die QNAP übertragen werden (genauer gesagt in die Datei /home/"user1"/.ssh/authorized_keys auf der QNAP), das kannst Du aber ganz einfach erledigen mit folgendem Befehl
ssh-copy-id -i /pfad/zu/deinem/ssh-PUB.key user1@<qnap-host>
(musst Du natürlich noch auf Deine aktuellen Gegebenheiten anpassen).
Sobald das korrekt durchgeführt wurde, kannst Du die SSH-Verbindung von HomeAssistant zur QNAP einmal testen:
ssh user1@<qnap-host>
. Das ganze sollte einfach sofort ohne Passwortabfrage funktionieren. Via SSH mit der QNAP verbunden, kannst Du dann testweise mal bzgl. der Steuerung eines Containers schauen via
sudo docker start plex
, auch hier dürfte keine erneute Passwortabfrage kommen. Wenn das alles soweit funktioniert, bist Du schon auf einem guten Weg und kannst das ganze dann nochmal via shell_command testen