ssh/scp ohne password (batch mode)

  • Es gibt mit ssh/dropbear die Moeglichkeit fuer eine Benutzer/Computer Kombination den Service so zu konfigurieren, dass kein Password bei deren Benutzung benoetigt wird.


    Ich habe es bei mir so eingerichtigt, so dass ich von meinem Laptop ssh/scp zu der Box ohne Passwordabfrage die Dienste benutzen kann.


    Ich gehe davon aus, dass dropbear bereits bei eure Box installiert und am laufen ist. Waehend dieser Beschreibung wird von Server und Client gesprochen. Die Box stellt der Server da und mienem Laptop ist der Client.


    Man geht so vor:


    1) Public und private rsa/dsa schluesseln auf dem Client als ein bestimmten Benutzer mit ssh erzeugen. Hierbei werden die Dateien id_dsa, id_dsa.pub, id_rsa und id_rsa.pub in dem Verzeichnis ~/.ssh/ erzeugt. Es werden drei Fragen waehrend der Erzeugung gestellt; die koennen alle ohne Eingabe mit der 'Return' Taste weiter gedruckt werden.

    Code
    ssh-keygen -t rsa
    ssh-keygen -t dsa


    2) Die zwei Publickeys zusammen fuehren. Ein andere Name fuer die resultierende Datei kann gewaelt werden.

    Code
    cd ~/.ssh
    cat id_dsa.pub >john@ny.rsa-dsa.keys
    cat id_rsa.pub >>john@ny.rsa-dsa.keys


    3) Die keys Datei zu der Box uebertragen. Meine Box heisst eben 'ne', bei euch heisst sie bestimmt anders.

    Code
    scp john@ny.rsa-dsa.keys root@ne:


    Folgende Befehle werden auf der Server/Box ausgefuehrt.


    4) Das .ssh Verzeichnis im Homeverzeichnis von root auf der Box erzeugen. Und die uebertragene Datei dahin speichern.

    Code
    cd
    mkdir .ssh
    mv john@ny.rsa-dsa.keys .ssh


    5) Die Schluesseln dropbear bekannt machen.

    Code
    cat john@ny.rsa-dsa.keys >>authorized_keys
    echo "Key john@ny.rsa-dsa.keys" >>authorization


    Folgende Befehle werden auf der Client ausgefuehrt.


    6) Die Konfiguration testen. Jetzt muesste eine Verbindung ohne Password abfrage funktionieren. Wichtig ist, dass der Benutzer, der die Keys erzeugt hat die Verbindung aufbaut.

    Code
    ssh root@ne

    johnbock


    13.0/19.2
    NFS/QNAP TS-219P/debian - lenny
    NFS/eSATA SheevaPlug/emdebian (ubifs) - squeeze

    Edited once, last by johnbock ().

  • Wow danke für dieses Howto. Werde es bei gelegenheit ausprobieren...


    thx


    //EDIT


    Hab es ausprobiert und es hat super funktioniert.


    8)

    Hilfe gesucht ? schau mal ins GP WIKI - Kein Support per PN

    Edited once, last by mfgeg ().

  • johnbock


    Du hast wunderbar beschrieben wie man einen Openssh Client mit einem Dropbear Server verbindet ohne Passworteingabe. Und es funkt super.
    Nun hat es mich aber interessiert wie man bei Dreamboxen einen Dropbear Client mit einem Dropbear Server verbindet. Und bin fündig geworden (glaube ich)....


    Ich erlaube mir, dein HowTo mit diesem hier zu ergänzen (wenn erlaubt). Die Dropbear Versionen waren 0.48... 8)



    - Arbeiten am Client -


    1. Auf dem Client muss ein rsa Schlüssel erstellt werden mit folgendem Befehl.


    Code
    dropbearkey -t rsa -f mykey


    Es wird ungefähr folgender Output ausgegeben:


    Code
    Will output 1024 bit rsa secret key to ‘mykey’
    Generating key, this may take a while…
    Public key portion is:
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAFTGDFRHRGDGDG…
    Fingerprint: md5 e6:a6:45:84:9d:59:9f:4a:bf:97:12:ca:56:f0:36:60


    2. Kopiert nun die komplette Zeile (4) die mit ssh-rsa AAAAB........... anfängt, aber ohne die Zeile (5) Fingerprint in die Zwischenablage (Ctrl + C)



    - Arbeiten am Server -



    3. Öffnet nun die Datei authorized_keys im Verzeichnis /home/root/.ssh/


    4. Fügt am Ende den Public Key ein (Ctrl + V) und speichert die Datei.




    - Verbindung zwischen Client und Server herstellen -


    5. Baut nun die Verbindung vom Client zum Server mit folgendem Befehl auf:


    Code
    dbclient -i ~/.ssh/mykey root@IPoderURLdesServers


    Das Verbinden sollte nun ohne Passwort erfolgen :)



    Ich hoffe bei euch funkt es auch.....



    Gruss mfg eg

  • super, ich glaub das war mein fehler. muss ich mal testen!

    Gruss Dre


    Developer Project Merlin

  • Hallo,


    ich versuche auch eine ssh Verbindung ohne Passwort zu einer weiteren Linux-Maschine aufzubauen.


    leider habe ich die Möglichkeit nicht auf meiner 7025 GP3.4 einen ssh-keygen zu erzeugen.


    Hat jemand eine Idee.


    Bin für jede Hilfe dankbar,


    Gruß


    Blutwurst

  • Hallo blutwurst,


    die Keys kannst Du auf einer beliebigen Linux-Maschine erzeugen und dann auf Deine Dream kopieren ;-)


    Gruss
    LivingOn

  • Gibts dafür eigtl. auch ne Variante für Windosen? Hab mal die Anleitung probiert mit Putty umzusetzen, bin aber kläglich gescheitert...

    so long
    m0rphU



    :aufsmaul: Kein Support per PN! :aufsmaul:

  • Ja, geht auch bei Windows, musst dazu das "Plink" von der Putty-Web-Seite nehmen. (Vorher Schlüssel erzeugen und verteilen; steht auch in der Putty-Hilfeseite)

    MfG X-Men2
    Wer nicht die richtigen Fragen stellt, bekommt nicht die richtigen Antworten.

  • Habs jetzt sogar mit GUI hinbekommen, dank puttygen.exe und pageant.exe :D


    Mein Fehler war, dass ich immer versucht habe, die von Putty generierte Datei mit dem Public-Key in die authorized_keys einzutragen... Habe jetzt stattdessen, die aus dem Feld genommen über dem steht "Public key for pasting into OpenSSH authorized_keys file:" :rolleyes: Augen auf!



    Also Danke für die Anleitung, denn die hat mir trotzdem geholfen!

    so long
    m0rphU



    :aufsmaul: Kein Support per PN! :aufsmaul:

    Edited once, last by m0rphU ().

  • Hi miteinander,


    funktioniert diese Verbindung auch mit mehreren Dreamboxen untereinander
    und wenn ja wie sollte das Script zum starten aussehen?


    MfG Rolli04

  • Ich hab es auch hinbekommen! :pokal:


    Tip: User "root" auf der Box braucht ein nicht-leeres Passwort, auch wenn du per private-key einloggen willst! Also mit telnet als User "root" einloggen und:

    Code
    passwd


    Wenn es trotzdem noch klemmt: Mit telnet einloggen, dropbear beenden, im Vordergrund starten und nochmal probieren mit putty/ssh einzuloggen. So siehst du nützliche Fehlermeldungen:

    Code
    /etc/init.d/dropbear stop
    dropbear -E -F


    Wenn du dropbear z.B. nur für Port-Forwarding benutzt, kannst du stattdessen auch einen neuen User anlegen, das Verzeichnis .ssh/ in dessen /home verschieben und den Owner anpassen. So kann per SSH nur als "joe" eingeloggt werden und es kann weniger kaputt gehen: ;)

    Code
    adduser joe
    mv -pR /home/root/.ssh /home/joe
    chown -R joe:joe /home/joe/.ssh


    Wer noch mehr Sicherheit will, kann dem dropbear Logins per Passwort ganz verbieten, indem er ein Textfile "/etc/default/dropbear" anlegt mit folgenden Zeilen:

    Bash
    #!/bin/sh
    DROPBEAR_EXTRA_ARGS="-s -g"
  • Hi !


    weil mich ein anderer Thread dran errinnert hat das ich auch mal das ssh/rsh aus dem Debian als Dreambox ipk gebaut hatte.


    Das kann noch mehr als das ssh vom dropbear das beim enigma dabei ist, weil z.B. beim rsh kann man auch remoten befehl angeben:


    rsh root@host befehl


    als z.B.


    rsh root@localhost df -h


    Im Prinzip geht dann natürlich auch reboot oder shutdown zum ausführen oder remote shellscripts, sofern man das remote passwort weis und/oder die accounts und keyfiels entsprechend hergerichtet hat das es auch ohne passwort geht :-)


    LG
    gutemine

  • na ja wie viele Dinge ist es nur aus dem Debian geklaut und umgepackt und halt die entsprechenden libraries gleich dabei das man nicht lange rumsuchen muss.


    Das rcp liegt auch noch wo auf der Harddisk rum falls das noch wer haben will, wobei standardmässig eh das scp dabei ist.


    LG
    gutemine

    Edited 4 times, last by gutemine ().

  • Und wie bekomme ich das Passwort für die ssh-Verbindung auf der Box raus ??? Habe nix gefunden, wo ich eins erstellen kann !

    . . . and I think to myself, what a wonderful Dream . . .

  • :danke:


    Bin dann noch über so simple Sachen gestolpert wie:
    man muß in das /.ssh-Verzeichniss zum Publizieren der Key´s
    wenig Angaben in den Postings oben
    es werden Dinge als bekannt vorausgesetzt, die ich nicht weiß aber nachlesen kann ;)

    . . . and I think to myself, what a wonderful Dream . . .

  • Hallo.


    1. Dreambox dm800se
    2. Ubuntu Server (14.04, kein root Zugriff - nur user "toni")


    Ich möchte Dateien ohne Passwort auf den Ubuntu Server schieben.


    Auf der dm800se habe ich mittels "dropbearkey -t rsa -f rsa_key_toni" Keys erstellt. Den public Key habe ich auf den Ubuntu Server in "~/.ssh/authorized_keys" verfrachtet.


    Wenn ich mich jetzt von der dm800se (angemeldet als User root) mit ssh auf dem Server einloggen möchte ("ssh -i ~/rsa_key_toni toni@meinserver.com") werde ich trotzdem noch nach dem Passwort gefragt.


    Wenn ich den public Key auf eine andere Dreambox setze und analoges mit der mache, dann klappt es. Es wird kein Passwort gefragt. Allerdings ist User root auf beiden Dreamboxen bekannt und das Passwort ist auch das gleiche.


    Also habe ich auf der dm800se mit "useradd toni" und anschliessendem "passwd toni" den User toni geschaffen und ihm das gleiche Passwort gegeben wie auf dem Ubuntu Server. Trotzdem funktioniert es nicht.


    - Was mache ich falsch?
    - Muss User toni auf der dm800se überhaupt existieren?
    - Muss der User auf dem Client (dm800se) eingeloggt sein, für den das Login auf dem Ubuntu Server steht?


    Gruß,