telnet Script welches selbstständig den User einloggt ?

  • Hi,


    Ich würde mir gern den Befehl;

    Code
    telnet IP der anderen Maschine Port


    in ein Shell Script schreiben was ja auch klappt um remote auf ne andere Maschine zu kommen.
    Aber wie kann ich das Script erweitern so das es mich als User auch gleich einloggt um dann
    noch weitere Befehle im Script abarbeiten zu können ?
    Mit nur der obigen Zeile komm ich ja nur auf ne andere Maschine und muss mich dann weiter manuell einloggen etc...
    Passwort gibts keines.


    Da gibts doch sicher eine oder mehrere Möglichkeiten dazu oder ?


    Gruss
    Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Moin,


    ich denke auch, dass ssh der praktikabelste Weg sein dürfte. Ich gehe jetzt mal davon aus, dass es sich hier um Maschinen im privaten Netz zu Hause handelt? Denn sonst wäre telnet ja eh indiskutabel ;)


    Einfach mal nach den Stichwörtern ssh, known_hosts und authorized_keys googlen.


    Regards
    Globber

    Gen2VDR (V5.3 Update 6)


    - Scaleo Evi - 2x DD Cine S2 v6.5 und v5.4 - 4GB RAM
    - Reycom REC100-S2
    - OctopusNet/SAT>IP

  • Hi,


    Danke euch allen für die Tipps !
    Werd mir dann mal beides ansehen sowohl expect als auch ssh.


    Zitat

    oder von telnet auf ssh umstellen. Wenn man dann den public Key der
    ersten Maschine dort hinterlegt kommt man auch ohne Passwort rein

    Passwort gibts soweiso keines hab ich aber auch geschrieben.
    EDIT ! Aha verstehe ssh ohne überhaupt ein Passwort zu haben gibts nicht.


    Zitat

    Ich gehe jetzt mal davon aus, dass es sich hier um Maschinen im privaten
    Netz zu Hause handelt? Denn sonst wäre telnet ja eh indiskutabel

    Ja is so der Fall.


    Gruss
    Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

    Einmal editiert, zuletzt von Bert ()


  • EDIT ! Aha verstehe ssh ohne überhaupt ein Passwort zu haben gibts nicht.


    das wuerde ich so nicht sagen :)


    ich mache die sshs auf meinen internen Rechnern immer total auf:


    /etc/ssh/sshd_config:

    Code
    ChallengeResponseAuthentication yes
    PasswordAuthentication yes
    UsePAM yes


    /etc/pam.d/sshd:

    Code
    auth sufficient pam_permit.so


    und schon brauchts keine userspezifischen public- oder private-keys oder gar passworte mehr :)


    - sparkie

  • Hi sparkie,


    Na das klingt ja auch für mich nach ner Option -> ist das trotzdem halbwegs sicher ?


    Gruss Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Na das klingt ja auch für mich nach ner Option -> ist das trotzdem halbwegs sicher ?


    also ich wuerde mal sagen die Unsicherheit wurde maximiert :D


    direkt ans Internet wuerde ich es also eher nicht haengen - jeder der zufaellig eine ssh auf deine IP startet kann kann nicht verhindern, dass er auch sofort eingeloggt ist :)


    aber fuer's *interne* Netz finde ich es recht praktisch...


    - sparkie

  • Hi sparkie,


    Danke für die Infos muss ich mir noch überlegen vielleicht mach ich das später auch so.


    Bin derweil soweit das ich das mit dem public.key probieren will.
    Hab dem private.key natürlich ne Passphrase verpasst dafür muss ich nun beim Login
    statt nem Passwort die Passphrase eintippen.


    Dazu hätt ich nun die Frage, sollte ich den private.key einfach nicht mit ner Passphrase sichern
    oder sollte ich besser den ssh agent verwenden um mich dann immer ohne Eintippen der Passphrase bzw. eines Passworts einloggen zu können ?


    Und falls ich den ssh agent verwende wie werd ich dann die Passphrase wieder los falls ich alles mal ändern will
    denn die Passphrase liegt dann ja im Speicher ?
    Denn ich mach das vorerst von ner anderen Maschine aus (nur zum testen) als von der von der aus ich das eigentlich machen will
    muss das also dann nach dem Testen wieder loswerden


    Gruss
    Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Hi,


    Hab jetzt mal testweise keine Passphrase für den private key angegeben.
    So funktioniert schon mal der automatische Login mit folgendem Script;


    Bash
    #!/bin/sh
    
    
    REMOTEMACHINE="XXX.XXX.XXX.XX"
    USER=blabla
    ssh $USER@$REMOTEMACHINE


    aber wenn ich das Script nun so erweitere;

    Bash
    #!/bin/sh
    
    
    REMOTEMACHINE="XXX.XXX.XXX.XX"
    USER=blabla
    ssh $USER@$REMOTEMACHINE
    shutdown -h now


    fährt nicht die Remote Maschine runter sondern meine Lokale Maschine.


    So hingegen gehts korrekt;

    Bash
    #!/bin/sh
    
    
    REMOTEMACHINE="XXX.XXX.XXX.XX"
    USER=blabla
    ssh $USER@$REMOTEMACHINE -C "shutdown -h now"


    Ist das auch korrekt so ?
    Wie schaff ichs das ich zum Beispiel nen Befehl einbaue um auf der Remote Maschine
    gleich noch in ein bestimmtes Verzeichnis zu wechseln ?
    Hab da einiges durchprobiert auch die Option -t kann aber nicht in ein gewünschtes Verzeichnis
    auf der Remote Maschine wechseln.


    Gruss Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Hi FireFly


    Zitat

    Ja, nur das was Du ssh mitgibst wird remote ausgeführt

    Danke

    Code
    ssh -t $USER@$REMOTEMACHINE "shutdown -h now"


    wird dann denke ich auch klappen.



    Code
    ssh $USER@$REMOTEMACHINE -C "cd /verzeichnis; ls -l; shutdown -h now"


    Hm, das meinte ich nicht wollte nur in ein Verzeichnis wechseln also so;

    Code
    ssh $USER@$REMOTEMACHINE -C "cd /media/hdd"


    Aus irgendeinem Grund klappt das nicht, manuell hingegen kein Problem.


    Gruss Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Hm, das meinte ich nicht wollte nur in ein Verzeichnis wechseln also so;

    Code
    ssh $USER@$REMOTEMACHINE -C "cd /media/hdd"


    Aus irgendeinem Grund klappt das nicht, manuell hingegen kein Problem.


    Das klappt schon: Du meldest Dich an, wechselst das Verzeichnis und meldest Dich wieder ab.
    Beim nächsten Anmelden wird die Anmelderoutine wieder komplett durchlaufen und Du bist wieder z.B. im Home-Verzeichnis.


    Ich glaube, Du willst was ganz anderes - aber was?
    Wenn Du kein Command (-C) mitgibst bekommst Du eine Shell, aber ich glaube das geht nur interaktiv, nicht im Batch (evtl. dann doch noch mit expect, aber ohne Gewähr).

  • Was soll da am Ende eigentlich rauskommen?


    Son Apache mit nem kleinen php Script macht vieles auch ganz einfach. Einfach die URL mit Passwort aufrufen und das PHP Script macht das was du auch immer tun willst.


    cu

  • Hi,


    FireFly

    Zitat

    Ich glaube, Du willst was ganz anderes - aber was?



    Wenn Du kein Command (-C) mitgibst bekommst Du eine Shell, aber ich
    glaube das geht nur interaktiv, nicht im Batch (evtl. dann doch noch
    mit expect, aber ohne Gewähr).


    und
    Keine_Ahnung

    Zitat

    Was soll da am Ende eigentlich rauskommen?

    Also eigentlich bin ich eh schon zufrieden (hab also schon was ich wollte)
    nämlich die Möglichkeit ne Remote Maschine über ne Lokale Maschine automatisch per Script runterfahren oder auch mal neubooten zu können.
    Konkret hab ich ausser meinen beiden Vdrs noch ne andere Satbox auf Linux Basis und die hatte schon zwei mal nen Hänger
    durch zuviel herumspielen meinerseits und da ich die dann nicht hart per Stromkabel ziehen beenden will brauchte ich halt ein automatisches Script
    mit welchem ich die dann von ner anderen Maschine (Vdr) heraus noch normal runterfahren kann (hauptsächlich damit auch der Rest der Familie
    das kann) denn ich werd das Script jetzt noch ins Vdr Befehle Menü einbauen damit das Ganze auch noch über die Fernbedienung zu machen ist.


    Der Rest wie in ein Verzeichnis zu wechseln war eigentlich jetzt nur mehr reine Neugier was da halt so alles machbar wäre
    aber da brauchts dann eben vermutlich wie FireFly schon sagte auch noch expect.


    Also Danke nochmals an alle Beteiligten hier -> Eure Posts haben mir sehr geholfen :] (hatte ja bis dato mit ssh noch nie was zu tun gehabt).


    Gruss
    Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Hi,


    Also bislang hat das folgende Script;

    Bash
    #!/bin/sh
    
    
    REMOTEMACHINE="XXX.XXX.XXX.XX"
    USER=blabla
    ssh $USER@$REMOTEMACHINE -C "shutdown -h now"


    immer seinen Dienst getan, und nun hab ich die andere Maschine (is ne e2 Box) upgedatet und seitdem klappt das nicht mehr
    wobei die ssh keys hab ich natürlich wieder neu erzeugt und einloggen ohne Passwort per ssh klappt nach wie vor nur der shutdown will nun nicht mehr
    Führe ich das Script manuell aus kommt immer der Fehler;

    Code
    sh: shutdown: not found


    Mit halt und poweroff ist es dasselbe Fehlerbild.
    Manuell aber funktioniert es (also wenn ich mich per ssh einlogge und den shutdown Befehl dann manuell eintippe).


    Gruss
    Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Nimm doch einfach absolute Pfade, wenn dein $PATH nicht passend gesetzt ist...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Danke seawhawk1986


    Ich mach das mal.


    Gruss
    Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau


  • So geht das nicht mit ssh.
    Dafür gibt es expect.


    --> http://bash.cyberciti.biz/security/expect-ssh-login-script/


    Falls Du telnet verwenden willst, dann geht das so: ;)


  • So geht das nicht mit ssh.
    Dafür gibt es expect.


    Doch, prinzipiell geht das, man muss innerhalb von automatisierten Skripts nur mit Authentifizierungsmethoden arbeiten, die keine Passwort-Eingabe erforderlich machen. Siehe z.B. http://systemsboy.com/2006/07/…ote-commands-via-ssh.html
    expect erfordert ja das Passwort irgendwo im Klartext abzulegen, was genauso wie telnet irgendwie suboptimal ist...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!