• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

ssh login - Passwort an der Kommandozeile übergeben?

Leonardo

Rhode Island Greening
Registriert
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 [email protected]" 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 [email protected]
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
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Da es ein privates Skript für Dich ist, würde ich es unter ~/bin/ legen. Hast Du es ausführbar gemacht?
 

lazertis

Schöner von Nordhausen
Registriert
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.
 

Leonardo

Rhode Island Greening
Registriert
04.09.05
Beiträge
479
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.
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?
 

Hilarious

Gelbe Schleswiger Reinette
Registriert
10.08.05
Beiträge
1.759
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?

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 :)
 

Leonardo

Rhode Island Greening
Registriert
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
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
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:
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?
 

lazertis

Schöner von Nordhausen
Registriert
26.11.06
Beiträge
327
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?

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. ;)
 

Leonardo

Rhode Island Greening
Registriert
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
 

lazertis

Schöner von Nordhausen
Registriert
26.11.06
Beiträge
327
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.

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. ;)
 

Leonardo

Rhode Island Greening
Registriert
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
 

lazertis

Schöner von Nordhausen
Registriert
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.
 
  • Like
Reaktionen: Leonardo

Leonardo

Rhode Island Greening
Registriert
04.09.05
Beiträge
479
Probier mal ein
ssh username@server ls -la
ob Du da ein Listing zurückbekommst [...] Wenn gar nix kommt, sieht's schlecht aus...

...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
 

MacMark

Jakob Lebel
Registriert
01.01.05
Beiträge
4.874
Warum packst Du den ssh-Befehl, den Du immer tippst, nicht in ein Shellskript in "~/bin/"?
 

Leonardo

Rhode Island Greening
Registriert
04.09.05
Beiträge
479
Warum packst Du den ssh-Befehl, den Du immer tippst, nicht in ein Shellskript in "~/bin/"?
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...
 

lazertis

Schöner von Nordhausen
Registriert
26.11.06
Beiträge
327
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...

Nein, das geht nicht. Es erleichtert nur die Eingabe des eigentlichen Befehls, der vielleicht auch etwas länger ist.
 

Tengu

Apfel der Erkenntnis
Registriert
05.02.07
Beiträge
721
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.

Was, bei Euch hat nicht jeder sein Homes??? Wasn das fürn Laden? Soll das heißen, es gibt globale User Accs?