Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. [gelöst] SSH Problem: sudo: no tty present and no askpas....

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] SSH Problem: sudo: no tty present and no askpas....

    This topic has been deleted. Only users with topic management privileges can see it.
    • Thomas Braun
      Thomas Braun Most Active @Pedder007 last edited by

      @pedder007

      Ja schon. Du wunderst dich, dass Account-gebundene Keys nicht funktionieren, wenn sie mit dem falschen User angepackt werden.

      1 Reply Last reply Reply Quote 0
      • OliverIO
        OliverIO @Pedder007 last edited by OliverIO

        @pedder007

        so jetzt mal von grundauf

        wir haben 2 Systeme

        System A
        auf dem läuft der iobroker
        da gibt es den user root,pi,iobroker

        System B
        da läuft motioneye
        da gibt es den user pi

        von System A soll per SSH von system B was abgerufen werden.

        1. zu prüfen ist, ob auf System A bereits ein Schlüsselpärchen für benutzer iobroker erzeugt wurde. das ist bei skriptaufrufen durch iobroker auch zwingend notwendig und nicht durch einen anderen usernamen ersetzbar.

        falls ein Schlüssel existiert, dann sollte die folgende datei bereits vorhanden sein

        /homer/iobroker/.ssh/id_rsa.pub
        

        wenn nein, dann muss ein neuer schlüssel generiert werden

        sudo -u iobroker ssh-keygen -t rsa -b 4096
        

        alles im standard bestätigen. wen gewünscht kann die passphrase eingegeben werden, aber der dateiname sollte nicht verändert werden
        danach nochmal prüfen ob die datei is_rsa.pub nun existiert

        1. user auf system B erzeugen, ich nenne ihn mal scriptuser um es klar zu unterscheiden
        sudo adduser scriptuser
        

        man wird nach einem passwort gefragt, welches wir auch erst einmal setzen, da wir es später noch benötigen
        die anderen fragen sind alle optional und können durchbestätigt werden

        1. schlüssel von System A nach System B kopieren

        der Public Schlüssel des users iobroker muss nun als gültigen Schlüssel für user scriptuser auf System B registriert werden

        dazu wechselt man auf System A zum user iobroker

        sudo -u iobroker bash
        

        im Anschluss kopiert man den Schlüssel auf den anderen Rechner mit folgendem Befehl

        ssh-copy-id -i ~/.ssh/id_rsa.pub scriptuser@192.168.x.x
        

        Der Befehl verbindet sich dann mit System B, fragt nach dem Passwort des scriptusers und trägt dann die Schlüssel alles richtig dort ein.

        Anmerkung zu unseren bisherigen versuchen. Dieser Befehl kann nur so ausgeführt werden. den Befehl mit einem sudo -u iobroker davor in einem schritt auszuführen schlägt fehl. auch als root die datei absolut zu benennen funktioniert nicht. das war mein fehler oben.

        1. test der ssh verbindung
          Auf system A, als user iobroker
          (man ist ja durch schritt 3 noch als iobroker angemeldet, also kann man direkt weitermachen)
        ssh scriptuser@192.168.x.x
        

        Im Anschluss sollte das prompt von
        iobroker@IP oder Hostname von System A
        nach
        scriptuser@IP oder Hostname von System B
        wechseln.

        diese schritte habe ich soeben selbst mit 2 docker container nachvollzogen und erfolgreich getestet.

        Mit dem root-Thema gebe ich @Thomas-Braun recht. wobei ich es nicht ganz so kritisch sehe, wenn man weiß was man tut.
        Allerdings gilt das für 98% der Forumsbeteiligten nicht. Daher ist die strikte Haltung in diesem Forum schon OK. Wer denkt er kennt sich aus, der setzt sich ja sowieso darüber hinweg, weiß aber, das er dann nicht meckern darf.
        Du brauchst bei dieser root verwendung keine Angst haben, das was kaputt gegangen ist, da der obige Befehl auf dem iobroker rechner nur gelesen und nix geschrieben hat.
        Das hier auch bei root eine besondere Behandlung des Verzeichnisses .ssh erfolgt und der Befehl nicht so funktioniert wie erwartet, obwohl man explizit die schlüsseldatei angegeben hat, war für mich auch neu

        Thomas Braun Pedder007 2 Replies Last reply Reply Quote 2
        • Thomas Braun
          Thomas Braun Most Active @OliverIO last edited by

          @oliverio sagte in SSH Problem: sudo: no tty present and no askpas....:

          Allerdings gilt das für 98% der Forumsbeteiligten nicht.

          Und die anderen 2% tun es nicht, weil sie verstanden haben das es viel komplexer ist und zu mehr 'komischem Verhalten' des Systems führt, wenn man dauerhaft als root herumzappelt.

          1 Reply Last reply Reply Quote 0
          • Pedder007
            Pedder007 @OliverIO last edited by

            Hallo @oliverio erst einmal vielen Dank für Deine große Mühe, so macht die Zusammenarbeit wirklich Freude!
            Nachdem ich gerade noch ein paar Devices von deConz nach ZigBee umgezogen habe und die entsprechenden Aliase und Scripte nachgezogen habe und das alles wieder gut funktioniert bin ich nun auch wieder motiviert mich dieser Herausforderung zu widmen 😉

            Ich gehe mal entlang Deiner Anleitung:

            falls ein Schlüssel existiert, dann sollte die folgende datei bereits vorhanden sein

            /homer/iobroker/.ssh/id_rsa.pub

            => haben wir

            1. user auf system B erzeugen, ich nenne ihn mal scriptuser um es klar zu unterscheiden

            sudo adduser scriptuser

            => haben wir = 'pi', mit PW, alles andere leer

            1. schlüssel von System A nach System B kopieren
              der Public Schlüssel des users iobroker muss nun als gültigen Schlüssel für user scriptuser auf System B registriert werden
              dazu wechselt man auf System A zum user iobroker

            sudo -u iobroker bash

            ==> da bin ich mir unsicher ob wir den Schritt schon hatten, ich glaube nicht, weil da bin ich via sudo bash ja nach root 'gezappelt'

            Aber leider zerlegt's uns an dieser Stelle schon wieder:

            iobroker@raspberrypi:/ $ ssh-copy-id -i ~/.ssh/id_rsa.pub pi@192.168.188.179
            /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/iobroker/.ssh/id_rsa.pub"
            The authenticity of host '192.168.188.179 (192.168.188.179)' can't be established.
            ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
            Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
            /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
            /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
            pi@192.168.188.179: Permission denied (publickey).
            

            PW ist auch nicht abgefragt worden

            Nur eine Anmerkung am Rande, da ich ja Proxmox Newbee bin:
            Es ist schon richtig, dass ich die ganze Zeit immer auf die IP Adresse des Containers Ziele, ja?

            OliverIO 2 Replies Last reply Reply Quote 0
            • OliverIO
              OliverIO @Pedder007 last edited by

              @pedder007 sagte in SSH Problem: sudo: no tty present and no askpas....:

              ssh-copy-id

              hattest du das anmelden per passwort auf system b deaktiviert?
              bitte prüfe auf system b die folgende datei

              /etc/ssh/sshd_config:
              

              und darin diese Einstellung muss auf yes stehen

              PasswordAuthentication yes
              

              dann musst du den ssh daemon neu starten

              service sshd restart
              
              Pedder007 1 Reply Last reply Reply Quote 1
              • OliverIO
                OliverIO @Pedder007 last edited by OliverIO

                @pedder007 sagte in SSH Problem: sudo: no tty present and no askpas....:

                Nur eine Anmerkung am Rande, da ich ja Proxmox Newbee bin:
                Es ist schon richtig, dass ich die ganze Zeit immer auf die IP Adresse des Containers Ziele, ja?

                welche systeme hast du den als container?
                bei ssh-copy-id gibst du die user und adresse von system b an, so wie oben beschrieben

                Pedder007 2 Replies Last reply Reply Quote 0
                • Pedder007
                  Pedder007 @OliverIO last edited by

                  @oliverio said in SSH Problem: sudo: no tty present and no askpas....:

                  und darin diese Einstellung muss auf yes stehen
                  PasswordAuthentication yes

                  Ja das stand noch auch 'no'.
                  Oben wiederholt und nun klappt auch dass ssh mit pi ohne PW, vom iobroker user aus.
                  Entsprechend werde ich das jetzt nochmals mit dem Blockly probieren.

                  welche systeme hast du den als container?
                  bei ssh-copy-id gibst du die user und adresse von system b an, so wie oben beschrieben

                  Aktuell tatsächlich erst einmal nur den Motioneye-Container (CT), sonst nichts.

                  1 Reply Last reply Reply Quote 0
                  • Pedder007
                    Pedder007 @OliverIO last edited by Pedder007

                    @oliverio UNBELIEVABLE 👍 👍 👍

                    Es klappt!

                    Ich hab auch das zusätzliche sudo wieder rausgenommen und es funzt!
                    64095a47-c235-4179-a6fc-d62652b381d0-image.png

                    Herzlichen Dank, hätte ich hier nicht schon ein Freitagsabends-Bierchen stehen, hätte ich mir jetzt eins geholt 😆
                    Prost 😉

                    Pedder007 1 Reply Last reply Reply Quote 0
                    • Pedder007
                      Pedder007 @Pedder007 last edited by

                      Nachdem die Hürde jetzt genommen ist, kommen als nächstes die Unifi-Konsole und der Pihole in Container.
                      Und dann gibts bald schonmal zwei Rapis weniger hier, bei denen die SD-Karten kaputt gehen können....

                      Den ioBroker Master behandele ich zunächst mal noch weiter solo, bis die ganze Umzieherei von deConz nach Zigbee fertig ist - nur noch 51 Devices 😉 ... welche alle noch ohne Aliase laufen 😵

                      Noch kurz bzgl. der root-Geschichte:
                      Mir braucht das wirklich keiner zu predigen, da ich mein gesamtes Berufsleben (>30J) in der IT unterwegs bin, allerdings die letzten ~15 Jahre nur noch rein 'administrativ'. Das ist alles richtig und deshalb gibt's bei mir auch nur so Ausnahmen wie z. B. hier.
                      Und am Ende macht der Ton die Musik 😉

                      Thomas Braun 1 Reply Last reply Reply Quote 0
                      • Thomas Braun
                        Thomas Braun Most Active @Pedder007 last edited by

                        @pedder007 sagte in [gelöst] SSH Problem: sudo: no tty present and no askpas....:

                        Und am Ende macht der Ton die Musik

                        Wenn der erste Gesang überhört wird muss man den Ton lauter drehen.

                        1 Reply Last reply Reply Quote 0
                        • Pedder007
                          Pedder007 @OliverIO last edited by

                          Hallo @oliverio und sorry das ich doch nochmal auf den Fred hier zurück komme.

                          Ich habe aktuelle meinen Proxmox Motioneye doch nochmals neu aufgesetzt, weil ich Schussel ein Buster Image für den Container genutzt hatte. Da mir das upgrade nach bullseye Motioneye zerschießt, also nochmals alles ganz von vorne.

                          Ich bilde mir nun ein das ich bzgl. ssh alles soweit richtig gemacht habe, Schlüssel angelegt, Schlüssel übertragen und ssh login klappt auch ohne Passwort vom iobroker Prompt (auf meinem Master) auf den neuen Motioneye Server (Slave).
                          Wenn ich allerdings die Befehlszeile zur Ausführung des Scriptes dahinter setze, sieht das Ganze leider so aus und ausgeführt wird da auch nichts:

                          iobroker@raspberrypi:/ $ ssh iouser@192.168.188.190 /etc/motioneye/motionmailoff.sh
                          bash: warning: setlocale: LC_ALL: cannot change locale (de_DE.UTF-8)
                          /bin/bash: warning: setlocale: LC_ALL: cannot change locale (de_DE.UTF-8)
                          sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
                          sudo: a password is required
                          sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
                          sudo: a password is required
                          sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
                          sudo: a password is required
                          sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
                          sudo: a password is required
                          sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
                          sudo: a password is required
                          sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
                          sudo: a password is required
                          

                          Hättest Du da evtl. nochmal einen Tipp für mich?

                          OliverIO 1 Reply Last reply Reply Quote 0
                          • OliverIO
                            OliverIO @Pedder007 last edited by

                            @pedder007

                            da wird ein passwort gefordert und das wollen wir nicht.
                            was ist das ergebnis von schritt 4?
                            bitte den eingegebenen befehl + die ergebnisausgabe hier posten

                            Pedder007 1 Reply Last reply Reply Quote 0
                            • Pedder007
                              Pedder007 @OliverIO last edited by

                              @oliverio, wie gesagt saubere ssh-Login ohne PW-Abfrage:

                              iobroker@raspberrypi:/ $ ssh iouser@192.168.188.190
                              Linux motioneye 5.15.74-1-pve #1 SMP PVE 5.15.74-1 (Mon, 14 Nov 2022 20:17:15 +0100) x86_64
                              
                              The programs included with the Debian GNU/Linux system are free software;
                              the exact distribution terms for each program are described in the
                              individual files in /usr/share/doc/*/copyright.
                              
                              Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
                              permitted by applicable law.
                              Last login: Wed Feb 22 20:45:55 2023 from 192.168.188.200
                              -bash: warning: setlocale: LC_ALL: cannot change locale (de_DE.UTF-8)
                              
                              iouser@motioneye:~$ 
                              
                              OliverIO 1 Reply Last reply Reply Quote 0
                              • OliverIO
                                OliverIO @Pedder007 last edited by

                                @pedder007

                                ok
                                hast du da jetzt ein passwort eingegeben oder hat das ohne funktioniert (also im hintergrund mit dem key)?
                                und dann gleich mal selber das script mit

                                /etc/motioneye/motionmailoff.sh
                                

                                starten

                                das locale problem kannst du hier beheben
                                https://www.simplified.guide/raspberrypi-os/fix-cannot-change-locale
                                evtl hängt das zusammen

                                Pedder007 1 Reply Last reply Reply Quote 0
                                • Pedder007
                                  Pedder007 @OliverIO last edited by Pedder007

                                  @oliverio Aha!
                                  Also das Login geht ohne PW, der Key sollte also funktionieren.
                                  Wenn ich den Befehl dann aber, eingeloggt auf dem Motioneye absetze, dann wird 'iouser' nach seinem [sudo] PW gefragt.
                                  Damit geht's dann auch!

                                  iouser@motioneye:~$ /etc/motioneye/motionmailoff.sh
                                  /bin/bash: warning: setlocale: LC_ALL: cannot change locale (de_DE.UTF-8)
                                  [sudo] password for iouser: 
                                  iouser@motioneye:~$ 
                                  

                                  Zu Deinem Link:
                                  Das geht dann aber dann nur auf meinem Master, weil im Proxmox gibts ja kein 'raspi-config'

                                  Pedder007 1 Reply Last reply Reply Quote 0
                                  • Pedder007
                                    Pedder007 @Pedder007 last edited by Pedder007

                                    @OliverIO eine andere Variante (inkl. 'sudo -S') funktioniert dann auch entsprechend mit zusätzlicher PW-Eingabe, führt dann aber auch das Script aus:

                                    iobroker@raspberrypi:/ $ ssh iouser@192.168.188.190 sudo -S /etc/motioneye/motionmailoff.sh
                                    bash: warning: setlocale: LC_ALL: cannot change locale (de_DE.UTF-8)
                                    [sudo] password for iouser: xxxxxxxx
                                    /bin/bash: warning: setlocale: LC_ALL: cannot change locale (de_DE.UTF-8)
                                    

                                    Interessant finde ich dabei, dass das PW dabei sogar leserlich eingegeben wird - ich habe es hier ausge-'x'-t

                                    Edit:
                                    Ich habe jetzt auch nochmals alle Parameter der 'sshd_config' auf dem bisherigen (Buster) System, wo es ja funktioniert, mit dem neuen (Bullseye) System verglichen. Auch da ist alles identisch.

                                    Edit2: Ich mache für heute erstmal Schluss. Würde mich freuen wenn Dir noch etwas einfällt. Schönen Abend noch! 🙂

                                    OliverIO 1 Reply Last reply Reply Quote 0
                                    • OliverIO
                                      OliverIO @Pedder007 last edited by OliverIO

                                      @pedder007
                                      Dann prüfe mal noch die Rechte und Eigentümer des scripts.
                                      Wenn da nach Passwort gefragt wird, dann darf iouser die nicht ausführen.
                                      Evtl ist dir ein Fehler bei der sudoer Datei passiert.
                                      Die bitte immer nur mit visudo editieren.
                                      Bei Fehler kann man sich komplett aussperren

                                      Pedder007 1 Reply Last reply Reply Quote 0
                                      • Pedder007
                                        Pedder007 @OliverIO last edited by Pedder007

                                        @oliverio die Rechte auf den Scripten hatte ich gestern auch schon gecheckt, allerdings stehen die dabei auf ALLE dürfen Alles 😉

                                        Allerdings war der Hinweis auf die sudoer Datei goldrichtig. Als ich das hier eben lass, viel es mir auch wieder ein, dass ich da ja auch eine Zeile hinzu gefügt hatte:
                                        8e71d1a8-7b26-446b-adaf-0e159b85e82b-image.png
                                        Damit geht's dann nun tatsächlich ohne PW-Abfrage 👍

                                        Dazu aber mal noch ne Frage: Muss ich dass dann immer machen, oder liegt das nur an meinem Konstrukt ssh nicht mit dem user iobroker aufzurufen, sondern mit einem anderen user (wobei der ja auf dem Zielsystem schon der Gruppe sudo angehörte)?

                                        PS.
                                        Die Zeile oben ist ein Screenshoot, da ich nicht weiß, wie man das M-6 (=copy) im visudo verwendet. Wäre dann noch eine Frage 😉

                                        1 Reply Last reply Reply Quote 0
                                        • OliverIO
                                          OliverIO last edited by

                                          @pedder007
                                          Du kannst mal in der config zum ssh Dämon schauen ob du Authentifizierung über keys eingeschaltet hast.
                                          Eigentlich ist das doppelt gemo

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          669
                                          Online

                                          31.6k
                                          Users

                                          79.6k
                                          Topics

                                          1.3m
                                          Posts

                                          4
                                          55
                                          2551
                                          Loading More Posts
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          The ioBroker Community 2014-2023
                                          logo