Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: CRTANONY en 7 Abril 2017, 17:37 pm



Título: cliente ssh
Publicado por: CRTANONY en 7 Abril 2017, 17:37 pm
Hola Buen día a todos

Estoy tratando de hacer un cliente web para una conexión ssh en php, leyendo la documentación de php indica utilizar ssh2 y como requisito obligatorio tener las librerías OpenSSL y libssh2.

Al entrar a las páginas oficiales obtengo ambos archivos openssl-1.1.0e.tar.gz y libssh2-1.8.0.tar.gz

llegando a este punto desconozco que hacer para que php lo acepte, es decir que archivos agregar o compilar... alguién que pueda ayudar, esto es sobre windows



Título: Re: cliente ssh
Publicado por: WHK en 7 Abril 2017, 17:57 pm
Para hacer un cliente ssh web vas a tener algunos inconvenientes, por ejemplo no basta solamente con poder conectarse a un servidor ssh, también tienes que interactuar en tiempo real
mientras la persona escribe el servidor puede enviar mensajes y mientra recibe mensajes debe ser capaz de enviar.

Lo que tu necesitas es un pipe en bash al ssh o un pipe ssh manipulando los procesos del sistema a menos que lo quieras hacer de manera directa utilizando otras librerías, pero tendrás problemas de compatibilidad entre las diferentes versiones.

Para lograr comunicarte con un servidor y poder enviar y recibir información en tiempo real necesitas utilizar websockets y procesos asyncronicos y en php te va a costar bastante hacerlo.

Resulta mucho mas fácil hacerlo en nodejs.

Ahora, ya existe algo similar, hay un complemento para Google Chrome el cual te da un bash con ssh y es compatible en linux, windows y mac:

https://chrome.google.com/webstore/detail/termius-ssh-client/fjcdjmmkgnkgihjnlbgcdamkadlkbmam?utm_source=chrome-ntp-icon
https://chrome.google.com/webstore/detail/rightscale-ssh/pfmkeekfkpfecccgbliieogmgmijklpm?utm_source=chrome-ntp-icon

Acá hay enlaces útiles:

http://kvz.io/blog/2007/07/24/make-ssh-connections-with-php/
http://php.net/manual/en/book.ssh2.php
http://socketo.me/
http://www.phpbuilder.com/articles/application-architecture/optimization/creating-real-time-applications-with-php-and-websockets.html
https://www.npmjs.com/package/simple-ssh
https://www.npmjs.com/package/node-ssh
https://www.npmjs.com/package/ssh-exec
https://www.npmjs.com/package/websocket
https://carlosazaustre.es/blog/websockets-como-utilizar-socket-io-en-tu-aplicacion-web/

Saludos.


Título: Re: cliente ssh
Publicado por: CRTANONY en 7 Abril 2017, 18:29 pm
Gracias haré pruebas


Título: Re: cliente ssh
Publicado por: CRTANONY en 18 Abril 2017, 21:53 pm
Hola nuevamente, resulta que utilicé la librería phpseclib

Código
  1. set_include_path('C:\xampp\php\pear\phpseclib');
  2. include('../../Complementos/SSH2/Net/SSH2.php');
  3. $ssh  =  new Net_SSH2($host);
  4. if (!$ssh->login($username, $pasword)) {
  5. exit('Login Failed');
  6. }
  7.  

donde $username es root y la conexión es para SunOS 5.10, el problema esta en que me deja ejecutar comandos como ls, df -h pero al intentar hacer lo siguiente

Código
  1. echo $ssh->exec('su -');
  2.  

me indica Permission denied a que se deberá no estoy muy familiarizado con el OS, esto es con la finalidad del cambio de contraseñas

Código
  1. echo $ssh->exec('su -');
  2. echo $ssh->exec('password');
  3. echo $ssh->exec('passwd '.$_POST['User']);
  4. echo $ssh->exec($_POST['pass']);
  5. echo $ssh->exec($_POST['confirm']);
  6. echo $ssh->exec('passwd -f '.$_POST['User']);
  7.  

al ejecutar esto ultimo obtengo

stty: : Invalid argument stty: : Invalid argument Enter Terminal Type: (default is 615):
ksh: password: not found Permission denied
ksh: password1: not found
ksh: password1: not found
passwd: password information changed for user


Saludos.