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
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.
Gracias haré pruebas
Hola nuevamente, resulta que utilicé la librería phpseclib
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
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
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.