Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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 (php) [Seleccionar]
set_include_path('C:\xampp\php\pear\phpseclib');
include('../../Complementos/SSH2/Net/SSH2.php');
$ssh  =  new Net_SSH2($host);
if (!$ssh->login($username, $pasword)) {
exit('Login Failed');
}


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 (php) [Seleccionar]

echo $ssh->exec('su -');


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 (php) [Seleccionar]

echo $ssh->exec('su -');
echo $ssh->exec('password');
echo $ssh->exec('passwd '.$_POST['User']);
echo $ssh->exec($_POST['pass']);
echo $ssh->exec($_POST['confirm']);
echo $ssh->exec('passwd -f '.$_POST['User']);


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.