Comunidad de diseño web y desarrollo en internet online

SSH y telnet en PHP

Citar            
MensajeEscrito el 22 May 2009 02:41 am
Buenas gente !

Es la primera vez que escribo aqui pero me lo han recomendado,

El caso es que para una cosa que estoy haciendo necesito establecer una conexion SSH a un equipo, y una vez en ese equipo hacer un telnet a un (variable) router (cisco),

Estoy haciendo una clase pero a la hora de hacer la conexion al primer equipo (que siempre es el mismo, no como el segundo) solo me muestra esto:
SSH-2.0-Sun_SSH_1.1

Código :

if($this->con=fsockopen($ip, 22)) { // conexion al primer equipo
echo "conectado\n"; // esto lo muestra
$this->LanzarComando("bash", $r); // lanzo el comando bash en el equipo y guardo lo que muestra en $r
echo $r;  // muestro $r: SSH-2.0-Sun_SSH_1.1
...


A parte de esto, yo uso un programa (SecureCRT) para conectar al equipo, al meter la IP y SSH2 me salta una ventana pidiendo user y pass pero no se como "darselos" por PHP, en el programa si meto el user y pw me sale algo asi:

Código :

Last login: Fri May 22 04:00:20 2009 from xxx
**
asd
**
$ (aqui es donde yo debería lanzar el bash pero nunca llega)


Saludos y gracias de antemano
PD: Espero haberme explicado bien jeje

Por oscarga

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 May 2009 08:30 pm

Por shakka

Claber

189 de clabLevel

2 tutoriales

Genero:Masculino  

mozilla
Citar            
MensajeEscrito el 22 May 2009 08:48 pm
thx !!

Por oscarga

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 May 2009 01:01 am
vale ! sbs lo que me pasaba, que yo antes usaba eso, pero a la hora de sacar los resultados me basaba en el tiempo de espera (sleep) y si algun dia iba lento no lo cojia todo pero ahora leyendome ese tutorial que has pasado he leido esto:
ssh2_exec($con, 'ls -al; echo "__COMMAND_FINISHED__"' ); que facilita las cosas :P

muchas gracias !!!!

Por oscarga

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 May 2009 09:39 am
buenas,

he probado con ese manual y funciona bien pero, cunado guardo la informacion en un array me guarda todo esto:

array(29439) {
[0]=>
string(0) ""
[1]=>
string(0) ""

Muchas lineas vacias y luego 1 con lo que ha recojido, luego otras tantas vacias y luego otra con datos y asi...

tengo aqui elcodigo:
function Captura()
{
$inicio = time();
$this->info = array();
while( true ){
$this->info[] = fread($this->shell, 4096);
if(in_array(COMANDO_FIN, $this->info)) return $this->info;
if((time()-$inicio) > 35){
echo "Han pasado 35 segundos.\n";
break;
}
}

return $this->info;
}

Por otra parte, no entra al if(in_array... siempre sale: Han pasado 35segundos... porque guarda todas esas lineas blancas ? que puedo hacer ?

Por oscarga

13 de clabLevel



 

msie7
Citar            
MensajeEscrito el 26 May 2009 01:46 pm
contestar no ? xd

Por oscarga

13 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.