PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SSH Befehle übertragen...



ReaTh
12.07.02, 20:45
Hallüh alle.

Wollte mal wissen ob es möglich ist im vorher festgelegten Rahmen, Befehle am System auf welchem ein SSHD läuft, zu übertragen ohne sich anzumelden??

Sprich wenn ich vorher als bestimmter user einen Befehl vordefiniert habe, diesen dann remote anzustoßen ohne mich manuell einzuloggen.

Sinn der Sache soll sein, Isdnkanalbündelung ein bzw. / -auszuschalten an meinem Router, ohne jetzt immer über ssh eine komplette authentifizierung durchzuführen (manuell).

Ne Datei die nur ich ausführen darf auf meinem Rechner welche dann einen Befehl zum Router überträgt.

Ich weiß Sicherheitstechnisch schon heikel und SSH widersprüchlich, daher bin ich auch für alternative Anregungen offen.

Danke im voraus.

Harry
12.07.02, 20:54
Hallo,

würde denn der Einsatz des ibod nicht Deine Probleme lösen?

Das ist ein Daemon, der auf dem ISDN-Router laufen kann und abhängig von der Last auf der ISDN-Leitung den zweiten B-Kanal hinzuschaltet, sobald der erste Kanal über einen Zeitraum von x Sekunden mit mehr als y kB Last betrieben wurde.
Er schaltet den zweiten Kanal wieder ab, wenn die Last auf beiden B-Kanälen sinkt.

Harry

howey
12.07.02, 21:02
Wenn man mal von den Sicherheitsbedenken absieht, eigentlich gar nicht so schwer...

1) Du erzeugst mit "ssk-keygen" auf deinem Client-System (das von dem aus Du die Kommandos aus erzeugen willst), eine Key-Paar. Der Public-Key liegt unter ~/.ssh/identity.pub bzw. bei Protokoll 2 ~/.ssh/id_rsa.pub.

2) Dieser ist in das Ziel-System an die Datei ~/.ssh/authorized_keys anzuhängen bzw. die Datei zu erzeugen.

3) schon ist Einloggen _ohne_ Paßwort möglich.

4) per "ssh rechner kommando" kannst Du Befehle auf dem entfernten Rechner ausführen.

einmal eingerichtet kein Problem. Außer daß jeder, der an deinen Rechner kommt, auch die anderen Rechner ohne weitere Autentifizierung bedienen kann :(

pitu
13.07.02, 00:02
nicht ganz, enter druecken muss man immer noch.

aber dafuer gibt es "expect", damit kannst du es auch mit password machen.

pitu

ReaTh
13.07.02, 13:53
Hehe Danke soweit.

@Harry

Also Ibod ist ne nette Sache schaltet der sich auch mal schnell einen Kanal aus wenn jemand von aussen Anruft???? Das wäre dann ganz hilfreich. Allerdings fallen mir auch noch andere Dinge ein die ich vielleicht mal am remotehost auslösen will.


@howey mein system ist in dieser Form konfiguriert aber natürlich mit Passphrase abfrage, damit man trotz privaten Schlüssel noch nicht so easy reinkommt.

Ich suche also eine Möglichkeit die sich automatisch am System anmeldet aber nur für einen Befehl und das Passwort verschlüsselt überträgt o. ä.

@pitu
was ist expect??

Wie sieht es mit nen Shellscript aus, welches sich anmeldet und gleich den befehl durchschleust???

pitu
14.07.02, 12:51
paket expect
man expect:


For example, here are some things Expect can do:

· Cause your computer to dial you back, so that
you can login without paying for the call.

· Start a game (e.g., rogue) and if the optimal
configuration doesn't appear, restart it (again
and again) until it does, then hand over con_
trol to you.

· Run fsck, and in response to its questions,
answer "yes", "no" or give control back to you,
based on predetermined criteria.

· Connect to another network or BBS (e.g., MCI
Mail, CompuServe) and automatically retrieve
your mail so that it appears as if it was orig_
inally sent to your local system.

· Carry environment variables, current directory,
or any kind of information across rlogin, tel_
net, tip, su, chgrp, etc.

There are a variety of reasons why the shell cannot per_
form these tasks. (Try, you'll see.) All are possible
with Expect.

In general, Expect is useful for running any program which
requires interaction between the program and the user.
All that is necessary is that the interaction can be char_
acterized programmatically. Expect can also give the user
back control (without halting the program being
controlled) if desired. Similarly, the user can return
control to the script at any time.


Im prinzip ist folgendes gemeint:

du kannst normalerweise befehle an programme folgernderweise weitergeben

fdisk <<EOF
d
1
d
2
d
3
n
p
1
0
+1024M
t
1
82
w
EOF

Dieses Scriptchen wuerde folgendes machen:
fdisk aufrufen, und ueber STDIN folgende befelhle aufnehmen:
die ersten 3 Partitionen wuerden geloescht werden. (d + nummer), dann wuerde eine erstellt werden (n), eine primaere (p) mit der nummer 1 (1) angefangen bei block 0, 1924 MByte gross, die partitionsid wuerde geaendert werden (t) fuer die ertse Partition (1) in typ 82 und das ganze wird auf die platte geschrieben (w)

Also representiert dieses "Script" die tstendruecke die du in dem interaktiven "fdisk" machen musst, um dies durchzufuehren. Bei EOF hoerts dann auf.

Bei bestimmten programmen funktioniert das aber nicht, dazu gehoeren alle programme die irgendetwas mit passwortern zu tun haben, natuerlich aus sicherheitsgruenden.

Darum wurde expect geschrieben. expect spricht statt deiner interaktiv mit dem programm und kann dann passworter eingeben. Und damit ist es genau deine loesung. Ist aber zuerst mal etwas komplizierter zu lernen.

pitu

Primusio
20.10.02, 22:08
Dieses Thema ist zwar schon etwas her aber ich habe ein Problem mit dem Beispiel "fdisk /dev/hda <<EOF".
Und zwar will ich es auf eine Bootdisk packen und automatisch ausführen lassen.
Aber er gibt mir immer einen komischen Fehler "1349...: No such file or directory" ich weiß, dass es definitiv an dem fdisk EOF Befehl liegt. Die Librarys für fdisk sind auch da und das geht auch aber brauche ich noch irgend etwas für dieses EOF ?

MfG
Primusio