Sponsor-Board.de
php -> ssh

+- Sponsor-Board.de (https://www.sponsor-board.de)
+-- Forum: Community (/forumdisplay.php?fid=56)
+--- Forum: Hilfe (/forumdisplay.php?fid=102)
+---- Forum: Scripting (/forumdisplay.php?fid=108)
+---- Thema: php -> ssh (/showthread.php?tid=21824)


php -> ssh - Stricted - 07.02.2012 05:22

Hallo

ich suche eine class um via php zu ssh zu connecten

ich bin momentan dabei ein tsdns interface zu schreiben das ich veröffentlichen will

da nun aber nicht jeder exec bzw. shell_exec ausführen kann oder will

möchte ich das ganze über eine ssh verbindung laufen lassen

da allerdings nicht jeder die ssh2 extension installiert hat
muss ich es anders machen

hat jemand ne idee wie ich zu ssh connecte
oder kennt oder hat jemand villeicht eine ganze ssh connect class?

bin über alle antworten dankbar


MfG


RE: php -> ssh - Joeym - 07.02.2012 06:57

Hallo,

da exec sehr unsicher ist, macht man dies am besten mit TCP.


RE: php -> ssh - Big Hosting - 07.02.2012 09:46

DU kannst uch einfach sh datien schrieben und diese aufrufen lassen.


RE: php -> ssh - Stricted - 07.02.2012 14:18

für eine sh datei bräuchte man weder exec zugriff
zum anderen mag mein php sh datein nicht sonderlich Biggrin

da ich selber nur ungern exec verwende und auch keine sinnlosen extensions installieren will

brauchts halt eine alernative

also nochmal

hat jemand ne idee wie ich zu ssh connecte
oder kennt oder hat jemand villeicht eine ganze ssh connect class?


RE: php -> ssh - Timchen - 07.02.2012 15:43

Du hast selbst bereits folgende Möglichkeiten festgestellt:
  • PHP-Extension als Voraussetzung
  • exec() o.ä. als Voraussetzung

... Und ich gehe mal stark davon aus, dass du dich für eine Sache davon entscheiden musst, denn mehr direkte Möglichkeiten gibt es meines Wissens nach nicht.

Das, was du planst, ist etwas, was ich gerne "exotische Software" nenne, sprich: Es fällt nicht unter den Standardkram.
Bei uns läuft annähernd jede "unexotische Software" - und mehr muss ein normaler Webspace auch nicht können, weil es eben nicht notwendig ist. Webspace ist ein Massenprodukt und muss genau auf diese Masse optimiert sein. Aber ich schweife schon wieder ab. Wink

=> Wer ein entsprechendes Interface braucht, braucht eben auch die technische Infrastruktur (mal ganz sachlich formuliert) um das ans Laufen zu kriegen. Hier rate ich allerdings dringend zu einer Umsetzung mit entsprechender PHP-Extension, denn dort findet man wenigstens vielleicht einen passenden Webhoster. Bei exec() wird das schon deutlich schwieriger, da sich der Webhoster hier (mehr) Schutzmaßnahmen ausdenken muss. Also - zumindest sollte er das. =)

Aber um dir mal weiterzuhelfen noch eine Idee meinerseits: Du könntest die Dinge, die zu erledigen sind, in eine MySQL-Tabelle schreiben. Ein Cronjob (Shellskript) könnte diese dann auslesen und durchführen. Okay, nicht jeder Hoster macht das mit.

Bei uns aber aktivieren wir auf Wunsch auch derartige Cronjobs. Bevor jemand mit "Das ist gefährlich und verantwortungslos" kommt, kurz zur Absicherung: chown auf root, chmod auf 700, chattr +i setzen und schon kann der Kunde absolut nichts mehr an der Datei machen (die Schritte 1+2 reichen, aber wir wollen es ja so sicher wie möglich). Das Skript sollte natürlich vorher durch einen Webhoster-Mitarbeiter auch geprüft werden. Wink


Grüße


RE: php -> ssh - Stricted - 07.02.2012 16:30

naja extensions hat nicht jeder und will nicht jeder installieren ich eingeschlossen

da ich bei sowas ungern auf exec o.ä. setze brauche ich irgendwas um via ssh u connecten

mir würde also eine ssh connect funktion/class genügen um es umzusetzen damit es auch wirklich jeder nutzen kann und nicht nur jene die die extensions installiert oder exec aktiviert haben

ich habe ebenfalls beides aus


RE: php -> ssh - RiekMedia - 07.02.2012 16:52

Es gibt nicht viele Möglichkeiten dies um zu setzen. Ich persönlich würde ssh2lib empfehlen. Zudem wer eine Software Hosten und ans laufen haben möchte, muss eben gewisse System Voraussetzungen mit sich bringen.

und ssh2lib hat vielleicht nicht jeder Hoster installiert aber sehr sehr viele.


RE: php -> ssh - Stricted - 07.02.2012 18:13

die sache ist diese ssh2lib habe ich persönlich nicht installiert und habe es nicht vor

exec ist genauso abgestellt der sicherheit wegen

da ich nicht vorhabe eines davon zu installieren bzw. zu aktivieren brauch ich alternativen


RE: php -> ssh - RiekMedia - 07.02.2012 18:21

Du hast nicht viele Möglichkeiten! Um es genauer zu sagen mehrere Möglichkeiten gibt es nicht zumindest wüsste ich jetzt keine.


RE: php -> ssh - KoKsPfLaNzE - 07.02.2012 20:23

wenn du alles wegen der sicherheit ausstellen will gibts da auch keine moeglichkeit, zu mindest ist mir da nichts bekannt.


RE: php -> ssh - Timchen - 07.02.2012 21:22

Hallo,

du verstehst es nicht, oder? Die üblichen Methoden hast du erkannt - die willst du nicht. Eine Alternative habe ich dir genannt - die ignorierst du.
Frag meinetwegen noch 100 mal...


Grüße


RE: php -> ssh - Stricted - 07.02.2012 21:41

.....

ich suche doch nur etwas um auf ssh zu verbinden
ich glaube eher du hast mich nicht verstanden


RE: php -> ssh - Timchen - 07.02.2012 22:08

Dann erkläre es mir doch nochmal, damit ich dir anschließend zeigen kann, dass ich Recht hatte...


RE: php -> ssh - Stricted - 07.02.2012 22:20

bei was sollst du bitte recht haben


ich such doch nur etwas um mit PHP zu SSH zu verbinden

nix weiteres
da brauch ich keine crons anlegen


RE: php -> ssh - Timchen - 07.02.2012 22:24

Terrax2 schrieb:
bei was sollst du bitte recht haben

Mit meiner Aussage, dass du nicht verstehst, deine Möglichkeiten bereits erkannt zu haben.

Terrax2 schrieb:
ich such doch nur etwas um mit PHP zu SSH zu verbinden

Ach, und man hat dir keine Möglichkeiten genannt und dir auch nicht mitgeteilt, dass du nichts weiter tun kannst?

Terrax2 schrieb:
da brauch ich keine crons anlegen

... Programmier besser keine Software.


RE: php -> ssh - Stricted - 07.02.2012 22:37

wenn du meinst

nur weil jemand nich deiner meinung is musst du nich gleich sagen "Programmier besser keine Software"

sowas ist lächerlich und armsehlich

ich such keinen besserwisser der nur seine meinung akzeptiert

aber gut mach was du denkst
MfG


RE: php -> ssh - Timchen - 07.02.2012 22:55

Terrax2 schrieb:
wenn du meinst

Meine ich. Smile

Terrax2 schrieb:
nur weil jemand nich deiner meinung is musst du nich gleich sagen "Programmier besser keine Software"

Die Frage nach Recht und Unrecht ist mit der Frage nach der persönlichen Meinung und der Entgegensetzlichen absolut nicht gleichzusetzen.
Ich habe nicht meine Meinung dargelegt, sondern eine Tatsache erläutert.

Terrax2 schrieb:
sowas ist lächerlich und armsehlich

Meintest du: "armselig"? ^^

Terrax2 schrieb:
wenn du meinst

nur weil jemand nich deiner meinung is musst du nich gleich sagen "Programmier besser keine Software"

sowas ist lächerlich und armsehlich

ich such keinen besserwisser der nur seine meinung akzeptiert

aber gut mach was du denkst
MfG


Terrax2 schrieb:
ich such keinen besserwisser der nur seine meinung akzeptiert

Nein, ich weiß. Ich kann lesen. Du suchst nach jemandem, der dir eine nichtexistente Lösung für dein Problem präsentiert.
(Das mit der Meinung hatten wir ja jetzt schon geklärt)

Terrax2 schrieb:
aber gut mach was du denkst

Das tue ich bereits, aber danke für den Tipp. Man kann auf seine Mitmenschen nicht gut genug achten! Sehr sehr vorbildlich von dir.
Ich kann mir hier aber eine kleine persönliche Ansicht nicht verkneifen: Das, was ich zu tun gedenke, hat mich bislang sehr weit in meinem Leben gebracht. Smile

Terrax2 schrieb:
MfG

Unter Einbeziehung des restlichen Beitrags: Hättest du dir sparen können.


Kann dem Threadersteller jetzt endlich mal jemand die nichtexistente Lösung auf dem Servierteller präsentieren, damit dieser sich nicht mit den vorhandenen Möglichkeiten zufrieden geben muss? Cool


RE: php -> ssh - Stricted - 07.02.2012 22:58

darauf werde ich nicht weiter eingehen

für alle anderen wer ne idee hat wie ich via php zu ssh verbinden kann pls per pm melden


RE: php -> ssh - Timchen - 07.02.2012 23:13

Terrax2 schrieb:
darauf werde ich nicht weiter eingehen

Ach, echt? Das überrascht mich jetzt. Biggrin

Terrax2 schrieb:
für alle anderen wer ne idee hat wie ich via php zu ssh verbinden kann pls per pm melden

Bitte verzeih mir, dass ich dir keine PN sende, sondern zum Wohle der Allgemeinheit (bzw. vor allem für zukünftige User oder Suchende) mit der gleichen Frage kurz und knapp die nicht in fertiger Form (als PHP-Klasse) downloadbare "Lösung" in Form einer knappen Anleitung präsentiere.

Du musst die Verschlüsselung und das Keyexchange-Verfahren von SSH in PHP implementieren. Die notwendigen Verschlüsselungstechniken hat mcrypt (Debian-Paket: php5-mcrypt - dürften die meisten Hoster haben), du musst sie nur anwenden. Und zwar dem SSH-Standard entsprechend.
Das Problem, was dir dann bleibt: Die SSH-Sessions "sterben" nach einem Request, also bitte schön ordentlich die Verbindung schließen. Und sauber ist die Lösung nicht wirklich (finde ich) - aber mehr fällt mir jetzt echt nicht ein.
(Wobei, wie war das? Meine Tipps willst du ja nicht ^^)

Und nein, ich programmiere das nicht für lau. Wink


RE: php -> ssh - Phil93 - 07.02.2012 23:36

Als erstes muss ich sagen: Das Problem wurde hier nicht wirklich sehr professionell geschildert. Deshalb habe ich mir nachträglich (also nach dem lesen des Beitrages) das Problem noch einmal ausführlicher erklären lassen.

Dir, Timchen, muss ich sagen: Du bist ja ein ganz schlauer... Theoretisch würde EXEC gehen, nicht aber wenn du einen externen Server bedienen möchtest oder einen anderen Nutzer auf dem selben Server.

Als Lösung für das Problem schlage ich folgende Möglichkeiten vor:

1. Eine SSL-gesicherte Verbindung und einen SSH-Parser für PHP (Sehr komplex zu machen, also nichts für Laien)

2. proc_open ( [Link: Registrierung erforderlich] ) verwenden, um die Anwendungen "ssh" (Linux, UNIX, Mac) oder ggf. (wenn möglich) "PuTTY" (Windows) zu kontrollieren.

3. Eine Extension für SSH-Verbindungen suchen und zu PHP hinzufügen (Ich denke, diese könnte es inzwischen auch geben - viele Massenwebhoster setzen inzwischen nicht mehr nur auf CGI, sondern auch auf PHP - und da muss der Server auch von Skripten vorkonfiguriert werden (zumindest Userdaten etc.))

EDIT: Rein aus freundlichkeit habe ich entschieden, ein SSH-Management-Framework für PHP zu basteln, und dieses als OpenSource zu veröffentlichen - Link wird noch beigefügt, dann kann der Thread auch zu....Tongue


RE: php -> ssh - Stricted - 07.02.2012 23:42

danke Phil93

haben ja grade im irc drüber gesprochen
bin mal gespannt drauf Smile


RE: php -> ssh - Phil93 - 07.02.2012 23:49

Ein git repository wäre sehr praktisch dafür, da ich es ja als OpenSource kostenfrei für die Allgemeinheit programmiere. (Bin ja nicht Timchen, der lieber klugscheißt als sich irgend eine Möglichkeit einfallen zu lassen) -- KeyeXchange in php zu integrieren wird zwar schwierig, allerdings denke ich, dass ich das hinkriegen werd' Tongue

Fragt sich nur: Willste SSH-Manager als Website-Implementation (dann pack' ich das gleich so mit rein) oder solls nur für andere Skripte als "Zwischenschaltung" dienen, wie die meisten Frameworks - bei Websitemanagement wäre sogar beides drin'...

EDIT: Link zum git wird ebenfalls beigefügt.


RE: php -> ssh - Stricted - 07.02.2012 23:50

für meine zwecke brauch sie keine Website-Implementation

diese wäre aber sicherlich auch interessant


RE: php -> ssh - Timchen - 07.02.2012 23:58

Phil93 schrieb:
Dir, Timchen, muss ich sagen: Du bist ja ein ganz schlauer...

Vielen Dank! Tongue

Phil93 schrieb:
Theoretisch würde EXEC gehen, nicht aber wenn du einen externen Server bedienen möchtest oder einen anderen Nutzer auf dem selben Server.

Moment mal - du legst mir Worte in den Mund, die ich nie gesagt habe.
Der Threadersteller ist die Person, welche es ohne exec realisieren will - nicht ich!
Davon abgesehen bzw. um auf die Behauptung deinerseits, ich hätte behauptet, es kann nicht funktionieren, einzugehen: Wenn exec() in der php.ini (des Users) deaktiviert ist, funktioniert es nicht. Ob lokal, per Remote oder lokal unter anderem User. Darüber brauchen wir jetzt auch überhaupt nicht zu diskutieren. Rolleyes

Phil93 schrieb:
1. Eine SSL-gesicherte Verbindung und einen SSH-Parser für PHP (Sehr komplex zu machen, also nichts für Laien)

Ich glaube, du meinst ungefähr das, was ich oben geschrieben habe - in jedem Fall aber meinst du (genau wie ich) eine noch nicht fertige Lösung. Und das will der Threadersteller ja leider nicht.

Phil93 schrieb:
2. proc_open ( [Link: Registrierung erforderlich] ) verwenden, um die Anwendungen "ssh" (Linux, UNIX, Mac) oder ggf. (wenn möglich) "PuTTY" (Windows) zu kontrollieren.

Ist sehr häufig deaktiviert. Ich bin auch recht froh darüber, dass unsere User die Anwendung "ssh" nicht "kontrollieren" können, wie du es nennst.

Phil93 schrieb:
3. Eine Extension für SSH-Verbindungen suchen und zu PHP hinzufügen

Dir scheint beim Lesen des Thread entgangen zu sein, dass der Threadersteller keine unüblichen PHP-Extensions als Voraussetzung für seine Software haben will.

Phil93 schrieb:
viele Massenwebhoster setzen inzwischen nicht mehr nur auf CGI, sondern auch auf PHP

Wtf? Du weißt schon, dass CGI und PHP etwas völlig verschiedenes sind? PHP ist das, was ich im Endeffekt ausführen möchte. CGI hingegen ist die Einbindungsmethode von Skriptsprachen wie PHP in den Webserver.
Wenn ich CGI habe, dahinter aber kein PHP hängt, bringt dem User das herzlich wenig - nämlich erstmal gar nichts.

Phil93 schrieb:
und da muss der Server auch von Skripten vorkonfiguriert werden (zumindest Userdaten etc.)

Hier ist mir jetzt nicht wirklich klar, was du meinst... Bitte erläutern.

Phil93 schrieb:
Rein aus freundlichkeit habe ich entschieden, ein SSH-Management-Framework für PHP zu basteln, und dieses als OpenSource zu veröffentlichen - Link wird noch beigefügt, dann kann der Thread auch zu....Tongue

Cool. Wann bist du fertig?

Phil93 schrieb:
Bin ja nicht Timchen, der lieber klugscheißt als sich irgend eine Möglichkeit einfallen zu lassen

Biggrin
Ich habe sehr wohl den Ansatz einer Problemlösung gepostet (und die bereits diskutierten Möglichkeiten zusammengefasst). Bitte nochmal den Thread lesen - ich hab den Eindruck, du hast so einiges überlesen. :/


RE: php -> ssh - Phil93 - 08.02.2012 00:14

".cgi" (Oft anzufindene Dateiendung) -- üblicherweise "gebunden" an den Perl-Interpreter (".pl"-Skriptdateien)

Voraussichtliche Fertigstellung des Skripts hängt davon ab, inwiefern sich Key-eXchange sich in PHP integrieren lässt.

Zu proc_open: Der Threadersteller hat einen eigenen Server, kann proc_open also auch aktivieren wenn es nötig ist - wenn er dies nicht tut ist dies sein eigenes Problem.

Zu unerwünschte PHP Extensions: Wenn sich das Problem nicht anders lösen lässt, als eine Extension einzubauen - Pech. Allerdings werde ich die Konfiguration mit ihm durchgehen und zudem wirds in dem OpenSource-Projekt auch eine genaue Anleitung zur Installation geben, sowie einen Hinweis, dass User von Massenwebhostern dieses Skript leider nicht verwenden können werden.

Zu Vorkonfigurieren von Userdaten etc.: Naja, das hinzufügen von FTP-Usern, MySQL-Usern und anderen Zugängen erleichtern sich viele Massenwebhoster durch shell_exec, exec usw. - oder durch SSH-Kontrollskripte (Teils auch ".sh"-Skripte)

So, nun muss ich aber erstmal weg - vllt. bearbeite ich mein Posting später nochmal oder beantworte Fragen später *g*


RE: php -> ssh - Joeym - 08.02.2012 06:46

Hallo,

wenn ich sehe was für Aufsätze Ihr schreibt wird einem ja schlecht. Wofür gibt es Protokolle? Um Sie nicht zu nutzen? Warum nicht per TCP? Ist keine Software und man braucht nur 2 Dateien.