[php] shell_exec('ssh') ?

Pagina: 1
Acties:
  • 119 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi,
Ik probeer al een aantal dagen iets te bereiken, namelijk dat ik via 1 pc een aantal bestanden kan kopieren naar een andere pc, en nog een een aantal commando's kan uitvoeren.
Nu werkt dit opzich wel. maar ik wil het zoals gezegd vanaf 1 pc aansturen.

Nu heb ik ssh2_exec e.d. geprobeerd. maar dat werkte niet echt zoals ik wou (waarom zou ik zo niet eens meer weten ;) ). ik wil meer hetgene als in shell_exec. waar je direct de output naar een string kunt zetten.
Dús ik probeer shell_exec ('ssh user@hostip whoami'); als voorbeeld. maar uiteraard zal ssh dan om een password vragen.
Hoe kan ik dat password op een of andere manier meegeven?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

PHP heeft eigen SSH-functionaliteit, dus waaorm zou je met de shell willen prutsen? ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
-NMe- schreef op maandag 22 mei 2006 @ 13:35:
PHP heeft eigen SSH-functionaliteit, dus waaorm zou je met de shell willen prutsen? ;)
zoals ik zei:
...Nu heb ik ssh2_exec e.d. geprobeerd...

Acties:
  • 0 Henk 'm!

  • Glashelder
  • Registratie: September 2002
  • Niet online

Glashelder

Anti Android

Wat is je probleem met ssh2 ?

PV 4915wp op oost, 2680 wp op west, 1900 wp op zuid. pvoutput - AUX 8 kW bi bloc


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Wat je waarschijnlijk wilt is een SSH-bridge opzetten van jouw PC naar die andere PC. Daardoor hoef je geen password meer te geven bij het inloggen.

Daarvoor moet je wat SSH-keys genereren etc. "man ssh-keygen"

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ip = "192.168.1.97";
$username = "root";
$password = "***";
$image = "centos.4.2-image.tar.gz";
$servernaam = "testservertje7";

$shell=ssh2_shell($connection);

fwrite( $shell, 'mkdir /home/vds/'.$servernaam);
echo "Directory $servernaam gemaakt.<br>";
fwrite( $shell, 'cd /home/vds/'.$servernaam);
fwrite( $shell, 'wget http://192.168.1.100/images/'.$image);
echo "Bestand Opgehaald.<br>";
fwrite( $shell, 'chmod 0777 cd /home/vds/'.$servernaam.$image); 
echo "CHMOD uitgevoerd.<br>";
fwrite ($shell, 'tar -zxvf '.$servernaam.$image);
echo "Geuntarred..<br>";*/


Dit is wat ik als laatst had, omdat ssh2_exec niet bereikte wat ik wou, omdat ik dus bv meerdere commando's achter elkaar wil doen, en dan telkens een && teken lastig en onoverzichtelijk vind.
maar de shell optie werkt ook niet echt aardig volgensmij, en de documentatie van SSH2 is bar slecht.

Ook heb ik ssh2_tunnel geprobeerd (zonder resultaat). ik kan ook nagenoeg nergens voorbeelden vinden enzo.

Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
^^ Je mist nog een ssh2_connect en een ssh2_auth_password in dat voorbeeldje?

Verder zie ik niet waarom je geen meerdere ssh2_exec's achter elkaar kunt doen, je maakt immers met ssh2_connect en ssh2_auth_password een SSH-resource aan, waarmee je gewoon meerdere ssh2_exec's kunt uitvoeren.

[ Voor 58% gewijzigd door Osiris op 22-05-2006 13:52 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Osiris schreef op maandag 22 mei 2006 @ 13:50:
^^ Je mist nog een ssh2_connect en een ssh2_auth_password in dat voorbeeldje?

Verder zie ik niet waarom je geen meerdere ssh2_exec's achter elkaar kunt doen, je maakt immers met ssh2_connect en ssh2_auth_password een SSH-resource aan, waarmee je gewoon meerdere ssh2_exec's kunt uitvoeren.
hmm. ja dat dacht ik ook.

Hoewel ik ergens anders dan weer las dat hij met elke ssh2_exec een nieuwe shell aanmaakte.
However werkte het jammer genoeg niet helemaal na behoren.

Acties:
  • 0 Henk 'm!

  • maartenba
  • Registratie: November 2001
  • Laatst online: 29-07-2024
Je kan met SSH keys gaan werken, en dan zo connecten. Een klein probleempje: je kan met PHP niet rechtstreeks op je shell gaan schrijven en er niet van lezen, omdat deze niet de standaard STDIN en STDOUT gebruikt. Heb het ook meegemaakt met SFTP, wat een toepassing over SSH is.

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Kijk eens naar proc_open(). Hiermee kun je programma's forken.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
wat ik vooral vervelend is is dat de output van ssh2
bijv:
$uitvoer = ssh2_exec('whoami');
weer weerst met fread en nog icm een ssh2 commando uitgelezen moet worden omdat t een stream is.

Acties:
  • 0 Henk 'm!

  • maartenba
  • Registratie: November 2001
  • Laatst online: 29-07-2024
Toch zal dat de beste keuze zijn, het gewoon gaan aanroepen met de shell commando's is niet doenbaar, je kan wel dinge nuitvoeren, maar je respons van de remote kant krijg je niet zomaar terug in je PHP applicatie...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hoe werkt dat nu dan,zo'n ssh key.
ssh-keygen -p
en dan vraagt hij naar het pad, maar die is er niet. dus heb ik een nieuwe leeg pub bestand gemaakt.
Dit vind hij nog lachen, maar dan vraagt hij om het oude wachtwoord (wat dr dus niet is.).
wat nu?

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op maandag 22 mei 2006 @ 13:57:
wat ik vooral vervelend is is dat de output van ssh2
bijv:
$uitvoer = ssh2_exec('whoami');
weer weerst met fread en nog icm een ssh2 commando uitgelezen moet worden omdat t een stream is.
lees ook eens de user comments op php.net, die soms ook nog wel eens nuttig :)

Acties:
  • 0 Henk 'm!

  • maartenba
  • Registratie: November 2001
  • Laatst online: 29-07-2024
Check voor die keys effe http://www.experts-exchan...ems/Linux/Q_21811339.html

Aan die comments die Erkens geeft heb je idd ook wel wat....

[ Voor 25% gewijzigd door maartenba op 22-05-2006 14:11 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat comment is zo verrekte slecht nog niet idd.
daarmee kom ik alsnog wel iets verder( hoewel ik normaal altijd comments lees...)

maar ik krijg als ik daar de max time wat hoger zet deze fout:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 524288 bytes) in /var/www/pub/aanmaaktest.php on line 35

what to do. lijkt me aardig wat geheugen... wat hij doet is een bestand van een paar honderd mb met wget ophalen en die daarna uitpakken enzo.

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op maandag 22 mei 2006 @ 14:51:
what to do. lijkt me aardig wat geheugen... wat hij doet is een bestand van een paar honderd mb met wget ophalen en die daarna uitpakken enzo.
wellicht genereer je met jouw commands teveel output wat je niet kan handelen op deze manier. Maar eigenlijk zou je je eerst moeten afvragen of dit wel de manier is waarop je wilt gaan werken (100mb "wgetten" en uitpakken met PHP).
Pagina: 1