1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

ssh login - Passwort an der Kommandozeile übergeben?

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von Leonardo, 24.05.07.

  1. Leonardo

    Leonardo Rhode Island Greening

    Dabei seit:
    04.09.05
    Beiträge:
    479
    Hallo AT!

    Ich wollte mir für meinen Login an der Universität, eine art Skript schreiben, damit ich mir diese blöde Passwort nicht merken muss und ganz sauber entweder 1.) einfach einen Doppelklick auf ein AppleScript oder 2.) im Terminal dann wenigstens nur ein shell-skript ausführen kann.

    Da ich mich nur über ssh am Server anmelden muss um dann den Port 80 freigeschaltet zu bekommen, hab ich sicherheitsmäßig keine bedenken, dass Passwort irgendwo in Plaintext reinzuschreiben.

    Die Möglichkeit, ssh mit einer Keyfile zu betreiben hab ich bisher nicht verstanden. Der Server hat aber einen Fingerprint, kann ich damit was anfangen?

    Nun hab mit meinem Halbwissen zwei Alternativen schon probiert, aber leider keinen Erfolg gehabt. Könntet ihr mir da weiterhelfen? Hier meine beiden versuche und was der Fehler daran ist:

    1.) AppleScript
    Code:
    set temp to display dialog "Airpot/Ethernet schon eingeschaltet?"
    do shell script "slogin meinaccount@10.1.1.10" password "MEinPaSsWorT"
    
    FEHLER:
    Pseudo Terminal will not be allocated because stdin is not a terminal.
    Permission denied, please try again.
    Permission denied, please try again.
    Permission denied (password,keyboard-interactive).

    2.) Terminal Shell-Script
    Code:
    #!/bin/sh
    /usr/bin/ssh meinaccount@10.1.1.10
    
    FEHLER:
    -bash: /usr/local/bin/unilogin: Permission denied

    Wenn ich es dann also sudo ausführe geht es dahingehend, dass er mich erst drei mal nach einem sudo-, dann nach meinem ssh-Passwort fragt. Aber das kann es doch auch nicht sein, oder?

    Über Hilfen bin ich sehr dankbar.
    Euer Leonardo
     
  2. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Da es ein privates Skript für Dich ist, würde ich es unter ~/bin/ legen. Hast Du es ausführbar gemacht?
     
  3. quarx

    quarx Hadelner Sommerprinz

    Dabei seit:
    17.04.05
    Beiträge:
    8.541
    Leonardo gefällt das.
  4. lazertis

    lazertis Schöner von Nordhausen

    Dabei seit:
    26.11.06
    Beiträge:
    327
    genau, quarx hat recht. Das Stichwort ist ssh-keys:

    Du erzeugst (mit ssh-keygen) ein Schlüsselpaar und legst den öffentlichen Schlüssel (public key) auf dem Server ab, an dem Du Dich anmelden willst. Deinen privaten Key kannst Du mit einer sog. Passphrase versehen (ähnlich einem Passwort, nur daß diese nicht über's Netz geschickt wird), die kannst Du aber auch leer lassen (Sicherheitsrisiko).

    Hast Du eine Passphrase vergeben, kannst Du Dir das Leben mit dem ssh-agent leichter machen, welcher sich die Passphrase für Dich merkt.
    So, jetzt hast Du ein paar Stichworte zum Suchen und Googlen. :)

    Das übergeben von Klartext-Passwörtern (nicht Passphrases) ist meines Wissens nach bei ssh nicht möglich, widerspricht aber auch dem Sicherheitskonzept von ssh. Dafür gibt's eben die Schlüssel.
     
  5. Leonardo

    Leonardo Rhode Island Greening

    Dabei seit:
    04.09.05
    Beiträge:
    479
    Ich glaube nicht, dass es mir erlaubt sein wird auf dem Loginserver der Universität Hamburg Daten abzulegen, oder ist das ein Standard-Prozedere von SSH und demnach immer möglich?
     
  6. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Die Public-Key-Authentifikation bei SSH-verschlüsselten Verbindungen ist m. E. die beste Methode SSH zu benutzen und somit durchaus im Sinne des Erfinders. In vielen Fällen erhalte ich von Kunden SSH-Logins für einen für mich angelegten Benutzer auf dem Zielsystem aber gar kein Passwort. Die Authentifikation findet ausschließlich durch den Schlüsselaustausch statt und benötige kein Passwort-Gedöns :)
     
  7. Leonardo

    Leonardo Rhode Island Greening

    Dabei seit:
    04.09.05
    Beiträge:
    479
    So wie ich das Prozedere der asymetrischen Verschlüsselung hier verstehe, müsste ich aber entweder über ein Homedirectory auf dem Uni-Server verfügen oder mich in eine authorized_keys Datei eintragen. Mir ist nicht bekannt, dass die Uni 44000 Homedirectorys eingerichtet hat.
    :innocent:

    Aber ein gutes hat das ganze: Mittlerweile kenne ich mein blöd-kryptisches Passwort so auswendig, dass ich für eine Einwahl (Terminal > ssh ich@derserver > Passwort) so ungefähr 5 Sekunden brauche.
    :p
     
  8. quarx

    quarx Hadelner Sommerprinz

    Dabei seit:
    17.04.05
    Beiträge:
    8.541
    Wenn Du Dich da per ssh einloggen kannst, hast Du dort auch ein Homeverzeichnis. Den Public Key kannst Du einfach mit
    Code:
    scp Dateiname username@server:
    in Dein Homeverzeichnis auf dem Server kopieren und dann nach einen ssh-Login an die Datei ~/.ssh/authorized_keys anhängen. Wo ist das Problem?
     
  9. lazertis

    lazertis Schöner von Nordhausen

    Dabei seit:
    26.11.06
    Beiträge:
    327
    Es wäre schon verwunderlich, wenn es nicht mal möglich sein sollte, bei Verwendung von ssh auch einen entsprechenden public key ablegen zu können bzw. dürfen, gerade weil die Verwendung von keys sicherer ist als die von Passworten.

    Zum Paket von ssh gehört auch das Dateiübertragungsprogramm scp. Damit solltest Du Dateien auf den Server übertragen können. Die public keys für SSH2 liegen standardmässig im (unsichtbaren) Unterverzeichnis .ssh des Homedirectories in einer Datei namend authorized_keys2.

    Du kannst nun Deinen public key z.B. mit
    scp id_dsa.pub user@uniserver:
    auf den Server übertragen, Dich dort anmelden und den key mit
    cat id_das.pub >> .ssh/authorized_keys2
    dem Keyfile hinzufügen. (Das geht auch elegant in einem Rutsch, aber die Syntax kann ich mir nie merken ;))

    Aber das kann man ja nochmal klären, wenn es soweit ist. ;)
     
  10. Leonardo

    Leonardo Rhode Island Greening

    Dabei seit:
    04.09.05
    Beiträge:
    479
    Ok, ok ich hab's verstanden. :)

    Also vielen vielen Dank für die schnelle und kompetente Hilfe so far. Ich werde das gleich morgen ausprobieren und euch berichten.

    Gute Nacht,
    Leonardo
     
  11. lazertis

    lazertis Schöner von Nordhausen

    Dabei seit:
    26.11.06
    Beiträge:
    327
    Dein Einwand ist durchaus berechtigt, aber es ist gar nicht notwendig, 44000 Homedirs einzurichten. Es könnte durchaus ein "Sammel-HomeDir" geben, in dem die User landen. Für die key-Authentifzierung ist dies unerheblich, da m.W. unabhängig vom Usernamen die authorized_keys* im Verzeichnis .ssh durchgegangen werden.

    Solange Du eine Login-Shell hast, musst Du ja irgendwo landen und dann besteht auch die Wahrscheinlichkeit auf eine authorized_keys. ;) Selbst, wenn das in /etc/passwd eingetragene Homedir nicht existiert, solltest Du in einem vordefinierten anderen Verzeichnis landen (z.B. /home/guest). Ist zumindest bei einigen Unices so, weiss aber nicht, ob auf allen.

    Wie auch immer - viel Glück...
    Wir wollen natürlich unbedingt eine Erfolgsmeldung. ;)
     
  12. Leonardo

    Leonardo Rhode Island Greening

    Dabei seit:
    04.09.05
    Beiträge:
    479
    Mittlerweile bin ich ein Stück weiter, aber kein Stück weitergekommen. Sprich: Ich hab versucht, meinen Schlüssel auf den Uniserver zu übertragen, aber soweit komme ich gar nicht.
    Nach dem Login hab ich dor nämlich gar keine Shell, sondern nur eine Nachricht, dass ich jetzt mit dem Uninetz verbunden bin und für die Dauer der Internetnutzung das Programm offen bleiben muss. Drücke ich irgend eine Taste werde ich disconnected. :(

    scp hab ich noch nicht ausprobiert, aber dennoch müsste ich da anschließend ein cat machen, wozu ich wieder eine shell bräuchte, oder?

    Mensch mensch. Schon wieder eine Abteilung der Universität, die ich hoffnungslos veraltet, rückständig und - präzise ausgedrückt - scheiße finde. :mad::-c
     
  13. lazertis

    lazertis Schöner von Nordhausen

    Dabei seit:
    26.11.06
    Beiträge:
    327
    Ja, das klingt nicht so erfolgversprechend. Ich vermute mal, daß Dein Account (wie die 43999 anderen auch) weder Login-Shell noch Homedirectory hat. Dann wird's sowieso nix.

    Probier mal ein
    ssh username@server ls -la
    ob Du da ein Listing zurückbekommst etwa wie
    drwxr-xr-x 3 test users 128 May 26 22:53 .
    drwxr-xr-x 50 root root 1248 May 26 22:50 ..
    drwxr-xr-x 2 test users 80 May 26 22:53 .ssh
    Wenn gar nix kommt, sieht's schlecht aus, wenn irgendwas kommt, schon besser, wenn ein Verzeichnis .ssh aufgelistet wird, hoffnungsvoll.

    Für den letzteren Fall probiere ein
    ssh username@server ls -la .ssh
    und Du bekommst den Inhalt von .ssh. Findet sich dort eine authorized_keys oder authorized_keys2?

    Für den (IMO unwahrscheinlichen) Ja-Fall kannst Du nun auch ohne scp Deinen public-Key per ssh an das Keyfile anhängen. Wenn id_dsa.pub Dein lokaler public Key ist und authorized_keys2 das entferne Keyfile, lautet der Befehl dazu

    cat ~/.ssh/id_dsa.pub | ssh username@server "cat - >> ~/.ssh/authorized_keys2"

    (alles in einer Zeile !)

    Ich vermute, daß Du nicht so weit kommen wirst (mangels Login-Shell), aber wer weiß. Der anschliessende Befehl sollte genau kontrolliert werden, denn wenn er wirklich funktioniert, kann ein Schreibfehler (sehr beliebt: nur ein > anstatt zwei) die authorized_keys2 überschreiben anstatt Deinen Key anzuhängen.
     
    Leonardo gefällt das.
  14. Leonardo

    Leonardo Rhode Island Greening

    Dabei seit:
    04.09.05
    Beiträge:
    479
    ...und so ist es leider. SEUFZ.

    Ich danke euch sehr für eure Unterstützung. Mittlerweile kenn ich mein Passwort ja auch auswendig da ich es zighunderttausenmillionenmal eingegeben habe.

    Tschüss,
    Leonardo
     
  15. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Warum packst Du den ssh-Befehl, den Du immer tippst, nicht in ein Shellskript in "~/bin/"?
     
  16. Leonardo

    Leonardo Rhode Island Greening

    Dabei seit:
    04.09.05
    Beiträge:
    479
    Weil ich die anschließende Passworteingabe nicht auch in das Skript packen kann, ODER? Bitte bitte sag, dass das geht. Das war ja mein erster Gedanke...
     
  17. lazertis

    lazertis Schöner von Nordhausen

    Dabei seit:
    26.11.06
    Beiträge:
    327
    Nein, das geht nicht. Es erleichtert nur die Eingabe des eigentlichen Befehls, der vielleicht auch etwas länger ist.
     
  18. Tengu

    Tengu Apfel der Erkenntnis

    Dabei seit:
    05.02.07
    Beiträge:
    721
    Was, bei Euch hat nicht jeder sein Homes??? Wasn das fürn Laden? Soll das heißen, es gibt globale User Accs?
     
  19. MacMark

    MacMark Biesterfelder Renette

    Dabei seit:
    01.01.05
    Beiträge:
    4.709
    Nein. Das von ihm beschriebene Szenario (ssh-Login ohne Homes) gibt es öfters zu diesem Zweck.
     

Diese Seite empfehlen