SSH Befehl an remote permission denied

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    Remote raspi per ssh steuern:

    ssh root@192.168.1.115 'bash -s' < foto.sh

    foto.sh hat folgende zwei Zeilen ( ist auf beiden Rechnern identisch vorhanden):

    fswebcam -r 640x480 q1.jpg

    scp q1.jpg papaklaus@192.168.1.110:/home/papaklaus/Desktop/q1.jpg

    Passwortabfrage ok

    Es kommt:

    Writing JPEG image to 'q1.jpg'.
    Permission denied, please try again.
    Permission denied, please try again.
    Permission denied (publickey,password).
    lost connection

    Die gleiche foto.sh auf dem raspi aufgerufen arbeitet einwandfrei.
    Was ist falsch?

    V_B

    • Offizieller Beitrag

    Naja, er sagt permission denied. Denn du must ein Passwort eingeben wenn du dich auf nen anderen schalten willst. Um das zu umgehen würde ich den ssh-key auf beiden Rechner bekannt machen. Klick mich

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • So wie ich das verstehe hat er bereits einen SSH-Key. Aber ich vermute mal das der Key nicht für den root Benutzer zugänglich ist? Also der root Benutzer @192.168.1.115 muss die SSH-Keys in /root/.ssh/ für papaklaus@192.168.1.110 haben.

    Am besten du testest das mal manuell.
    Erst verbindest du dich zum ersten System:

    Code
    ssh root@192.168.1.115


    Und dann versuchst du dich von dort aus auf das andere/zweite System anzumelden:

    Code
    ssh papaklaus@192.168.1.110

    Also Verbindung über 2 Ecken ;)

    Funktioniert das oder wirst du da nach irgend was gefragt?
    Wenn du dort nach einem Password gefragt wirst passt etwas mit den Keys nicht. Wenn nur eine yes/no Frage kommt dann sollte es anschließend auch mit den Scripts funktionieren.

  • Sorry,


    ich kann sowohl mit SSH als auch mit SCP in beiden Richtungen an beiden Rechnern arbeiten.
    Ich kann ja auch mit ssh eingeloggt die foto.sh auf dem remote aufrufen.

    Nur ich wollte halt mal lernen wie das mit dieser Art der remote Steuerung funktioniert.

    Momentan noch mit Passwort, das stelle ich später ab, benutze die Befehle schon länger.

    Nur eben bei dieser remote Sache klappt das nicht. Vielleicht muss ich das Passwort beim Aufruf übergeben, nur wie?

    root muss auf dem remote sein, der nutzt 433 MHZ Sender, der funzt nur mit root.

    papaklaus ist derzeit auch root ( sudo -i ).

    Aber ich werde mal versuchen das Passwort ganz abzuschalten.

    Querverbindung ohne Probelem

    Danke

    Einmal editiert, zuletzt von Von_Boedefeld (14. September 2015 um 12:42)

  • Wenn du es manuell / händisch machst, wirst du also in der Tat noch nach einem Password gefragt... Das fehlt dann natürlich wenn du ein Script veranlasst etwas (automatisiert) zu übertragen.

    Es gäbe 2 Möglichkeiten:

    • Die von dbv erwähnten SSH-Keys einrichten, allerdings in diesem Fall ohne zusätzliche Key-Pass-Phrase. Dann Authorisiert man sich anhand dieser SSH-Key-Files.
    • Mithilfe des Programms expect ein Script schreiben welches auf solche Aufforderungen reagiert (google suche nach: SSH Password expect)

    Aber die mit Abstand beste, einfachste und sicherste Methode ist die erste ;)

  • Leider war die Lösung nur teilweise richtig.
    Kopieren ohne Passwort nun in beiden Richtungen möglich.

    scp q1.jpg papaklaus@192.168.1.110:/home/papaklaus/Desktop
    q1.jpg 100% 8069 7.9KB/s 00:00

    papaklaus@papaklaus:~$ scp q1.jpg root@192.168.1.115:/root/
    q1.jpg 100% 8069 7.9KB/s 00:00

    und trotzdem:
    ssh root@192.168.1.115 'bash -s' < foto.sh

    Permission denied, please try again.
    Permission denied, please try again.
    Permission denied (publickey,password).
    lost connection
    Warum auch dreimal diese Meldung?
    Sind da drei Versuchen gemacht worden?

    Viele Wege führen nach Rom. Vielleicht macht ein anderer remote Befehl das gleiche ohne Stress?

    V_B

    Einmal editiert, zuletzt von Von_Boedefeld (16. September 2015 um 07:20)

  • Du fragst, ob es einen anderen Befehl gibt, der ohne Anmeldung Dinge auf deinem Rechner verändern darf? Ja gibt es, freundliche Mail an die NSA, du möchtest ihre Software nutzen.
    Hast du das ernsthaft gefragt? Ich ignoriere das mal...

    Der Unterschied ist, dass du dich als root anmeldest, die Tests machst du mit papaklaus. Du solltest dich NICHT mit root über ssh anmelden, in richtig konfigurierten Systemen ist das nicht einmal möglich.
    3x kommt die Fehlermeldung, weil 3x ein Passwort nachgefragt wird bei Fehleingabe.
    Verwende ssh-keys (scheint ja schon umgesetzt zu sein) und arbeite nur mit den Benutzern "papaklaus" und es wird funktionieren.

    Aktuell sieht der Aufruf den dein Pi macht nämlich so aus:

    Code
    root@papaklaus:~$ scp q1.jpg root@192.168.1.115:/root/


    Automatisch zusammengefügt:
    Was mir gerade auffällt, du willst die Dinge in /root/ hineinkopieren, warum bitte das? Das ist keine gute Idee. Arbeite in deinem Homeverzeichnis, also /home/papaklaus sofern du deinen Benutzer korrekt angelegt hast.

    Einmal editiert, zuletzt von Horroreyes (16. September 2015 um 12:08)

  • Ich beende das Thema.
    Ich habe keinerlei Lust mich jedesmal über root und Ähnliche Ding belehren zu lassen.
    Als GPIO z. B. muss ich root sein! Und ich habe hier vier Raspis mit Breadboard und installiere und prüfe jeden Sensor und jedes Zubehör das ich bekommen kann.
    Ich habe sonst nix zu tun, also sitze ich hier 14 - 14 Stunden!
    Und wenn papaklaus nur mal auf ein sd Karte von einem anderen raspi im sd Kartenleser schauen will,
    DENIED DENIED.
    Und wenn es Euch um den Schlaf bringt, ALLE MEINE RASPIS SIND ROOT und bleiben es.

    Ich möcht einfach in Ruhe arbeiten können ohne lange im Voraus zu planen wie meine Rechner heissen, welche Rechte sie haben.

    Und nun sag Du mir, schlau wie Du bist, wie ich als Papaklaus auf diese z. B. sd-Karten zugreifen soll?

    gksudo nautilus, gksudo gedit, was noch?
    Sorry, eines habe ich vergessen, mein Rechner ist Ubuntu. Sonst gäbe es keinen Papaklaus, es gäbe nur ROOT.

    V_B

    Einmal editiert, zuletzt von Von_Boedefeld (18. September 2015 um 15:46)

  • Naja, ich will ja wenigstens denn auch hier die Lösung präsentieren die ich gefunden habe.

    add to
    nano ~/.bashrc

    t103 () { ssh root@192.168.1.115 'bash -s' < foto.sh; }

    source ~/.bashrc

    Und der Aufruf von T103 erledigt den Job.

    Danke trotzdem, auch wenn ich manchmal unwirsch werde, ist nicht so gemeint!

    V_B

  • ...Mein deinem letzten Post kann derart lieblos kaum jemand etwas anfangen, da kein Anfang oder Ende ersichtlich ist... Was nun in die .bashrc rein kommt und was nicht, wird in dem Beitrag nicht unteschieden.

    Davon abgesehen ist das nicht wirklich eine anständige Lösung - ohne dich provozieren zu wollen.
    '.bashrc' wird ausgeführt sobald sich der Benutzer einloggt (es ist also kein "source .bashrc" nötig), aber man will vielleicht nicht jedes mal dieses Script auf dem anderen Rechner ausführen?
    Wenn es aber doch auch so funktioniert über .bashrc gibt es kein Grund wieso es händisch nicht auch funktionieren sollte...

    Leider erwähnst du selbst auf Nachfrage nicht was du denn nun genau wo eingibst - so wird es schwer den Fehler zu finden. Wir sitzen nicht bei dir und sehen auf welchem Rechner du was eingibst usw, das kannst nur du uns erzählen damit wir vielleicht ein Fehler entdecken. Hilfe kann nur so gut sein wie die Informationen die man zum Problem hat. Was du hier ablieferst ist aber mehr als dürftig - es fällt schon im ersten Beitrag ziemlich kurz/knapp/trocken aus.

    Auch auf die Gefahr hin das du wieder austickst, mache ich mir mal die Mühe ein Beispiel zu nennen:

    • Du hast einen Linux-Rechner mit der IP 192.168.0.1 .. Dort meldest du dich an (völlig wurscht ob als root oder nicht).
      Von diesem Rechner (192.168.0.1) aus möchtest du dich via ssh zu einem anderen (192.168.0.2) verbinden, und auf diesem anderen Rechner (192.168.0.2) ein Befehl / Script ausführen.
      Um dies zu erreichen reicht wird folgender Befehl ausgeführt:

      Code
      ssh root@192.168.1.115 bash foto.sh
    • Auf dem anderen Rechner (192.168.0.2) liegt in /root/ ein Script namens foto.sh:

      Code
      fswebcam -r 640x480 q1.jpg
      
      
      scp q1.jpg papaklaus@192.168.0.3:/home/papaklaus/Desktop/q1.jpg


      Das Script will sich also ebenfalls zu einem weiteren Rechner (192.168.0.3) verbinden und automatisiert eine Datei übertragen. Damit dies möglich ist müssen mindestens hier SSH-Keys für die Verbindung zwischen Rechner_192.168.0.2 und Rechner_192.168.0.3 erstellt werden damit nicht nach einem Password gefragt wird. Hier ist aktuell Dein bestehendes Problem. Diese SSH-Keys müssen auf dem Rechner_192.168.0.2 für den Benutzer 'root' zur Verfügung stehen aber auf dem Rechner_192.168.0.3 für den Benutzer 'papaklaus'

    Siehst du was ich meine? Ich beschreibe den Sachverhalt und unterscheide zwischen den Rechnern damit es übersichtlich ist.

    ...viel Glück...

  • Also zunächst einmal vielen Dank für deine Geduld, ach hätte ich die doch auch:-)

    Irgendwie ist diese User papaklaus auf Rechner papaklaus / Ubuntu 110, da rein geraten.
    Sorry dafür.

    Anbei ein Schema meines normalen Rechneraufbaus.
    Es sind alles root weil alle mit GPIO arbeiten.

    Ich habe das System nun soweit perfektioniert das ich ohne ein Passwort folgendes tun kann:

    Einlogge, jeder mit jedem
    Files kopieren von jedem Rechner zu jedem Rechner, alles von Ubuntu aus, also
    kopiere Files von IP118 nach IP115.
    Das auch mit script mit Parameterübergabe.
    Nur, wie gesagt, scp im script funktioniert so nicht.
    Daher einige alias in.bashrc angelegt und nun läuft alles wie am Schnürchen.

    in .bashrc sind folgende Einträge:

    t102 () { scp "$@" root@192.168.1.102:/root/; }
    t103 () { ssh root@192.168.1.115 'bash -s' < foto.sh; }
    t104 () { ssh root@192.168.1.110 'bash -s' < mpg321start.sh; }

    die ich halt momentan noch mit
    source ~/.bashrc
    aktiviere.

    allerdings mit einer Ausnahme, t104, soll:
    IP118 soll mp3-Datei auf IP110 starten.

    Von_Boedefeld
    20. September 2015 um 09:14

    Nochmal, Danke.
    Es ist ja so, ich schaffe es die raspis zu programmieren, GPIO Dinge zu machen, aber ich hänge immer an so "einfachen" Dingen fest. Ich ändere C-Code, Python-Code mit weniger als gesundem Halbwissen und es klappt.
    ssh root@192.168.1.115 'bash -s' < foto.sh
    funktioniert mit allem möglichen, aber wie gelernt nicht mit SCP und wohl auch nicht mit spiel mir ein Lied:-)

    Wie auch immer, anstrengend aber immerhin haben wir ja bisher immer eine Lösung gefunden.
    Ich bin nun seit 5 Monaten dabei. Davon drei Monate in Thailand und nun seit 2 Monaten wieder in D.
    Die gesamte GPIO Hardware ist alles erst hier angeschafft, in Thailand gab es nix.
    Dafür habe ich mich in Kameras/Streaming eingearbeitet und das beherrsche ich nun fließend.
    Jetzt muss / will ich alles an Zubehör ausprobieren.
    Also eine Runde lütt und lütt für alle.

    V_B

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!