Ejecutando comandos en un servidor desde PHP con SSH

Estos días estoy trabajando en una aplicación web para la gestión de usuarios y cursos. Esta aplicación está hecha en PHP con una base de datos MYSQL, crea usuarios en un servidor LDAP y tambíen crea las homes de estos usuarios en otro servidor. Hoy voy a explicar como crear esas homes en un servidor que no es el de la aplicación. Otro día explicare todo el tema de PHP con LDAP.

Bien, lo primero que vamos a hacer es instalar el soporte de SSH para PHP en Ubuntu 12.04 en adelante.

sudo apt-get install libssh2-1-dev libssh2-php

Ahora comprobamos si es posible la conexión SSH al servidor

if(!($con = ssh2_connect("nombre servidor", 22))){

echo "No se puede iniciar una conexión SSH";}

Si se puede, creamos una conexión mediante usuario y contraseña, hay que ser conscientes de que esta información es sensible y estará en nuestro código.

else {
 if(!ssh2_auth_password($con, "root", "******")) {

echo "error en la autenticación";}

Si la conexión ha sido correcta ejecutamos los comandos pertinentes, en mi caso creo una carpeta que será  la home del usuario y le pongo a ese usuario de propietario, que viene dado de un formulario

else {

if(!($stream = ssh2_exec($con, "mkdir /volume1/users_homes/'$nick' && chown '$nick'@saregune:users /volume1/users_homes/'$nick'" )) ){
 echo "error al ejecutar los comandos";
 } else{
 echo  "home creada" ;
 }
 }
 }

 

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *