Foros del Web » Programando para Internet » PHP »

Conexion a SSH

Estas en el tema de Conexion a SSH en el foro de PHP en Foros del Web. Hola me gustaría saber como acceder a mi servidor por SSH a traves PHP para ejecutar ordenes...
  #1 (permalink)  
Antiguo 03/01/2005, 09:53
Avatar de kesthers  
Fecha de Ingreso: mayo-2004
Ubicación: Valencia
Mensajes: 358
Antigüedad: 13 años, 6 meses
Puntos: 2
Conexion a SSH

Hola me gustaría saber como acceder a mi servidor por SSH a traves PHP para ejecutar ordenes
  #2 (permalink)  
Antiguo 03/01/2005, 10:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si PHP corre en el servidor que ha de ejecutar esas "ordenes" (comandos en la "shell" del S.O. de ese servidor) .. tan sólo debes usar las funciones del tipo:

exec() .. system() y afines

Eso sí, recuerda que PHP cuando sale al S.O. con esas funciones .. toma el usuario que corre este, ya sea (dependiendo de la configuración e instalación de PHP) el que corre tu servidor HTTP (Apache o el que uses y usuario asignado si lo instalastes como módulo) o bien si corre PHP como CGI .. el que use. Este tipo de usuarios no tiene permisos para ejecutar muchos comandos, así que dependiendo de que comandos quieras ejecutar tal vez tengas que "cambiar" de usuario por un instante para ejecutar tus comandos con otro comando tipo "sudo" o simlar (dependiendo del S.O. y permisos que tengas para hacer esto).

---------------------

Ahora, si tu quieres usar PHP para conectarte a otro servidor vía SSH (o incluso a si mismo pero vía SSH) .. tendrás que hacerlo (supongo) por sockets (www.php.net/fsockopen) o con las librerías cURL (www.php.net/curl) e implementando todo el protocolo SSH que necesites por médio ...


Un saludo,
  #3 (permalink)  
Antiguo 03/01/2005, 15:59
Avatar de kesthers  
Fecha de Ingreso: mayo-2004
Ubicación: Valencia
Mensajes: 358
Antigüedad: 13 años, 6 meses
Puntos: 2
El uso que quiero darle es para ejecutar ordenes que solo puede ejecutar el administrador (root). Por ejemplo reiniciar el servidor apache. Por lo tanto sería usar el usuario root.

Habia pensado como tu has dicho en el comando exec() pero no sabria como hacer que tome el control del root

Tengo un Linux Fedora Core 2

Lo necesito porque en el trabajo alguna vez he necesitado acceso SSH y nos tienen cerrado este puerto. Por suerte tengo acceso por FTP y si puedo subirlos para ejecutarlos luego desde la web.

Saludos y Gracias
  #4 (permalink)  
Antiguo 03/01/2005, 17:00
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 14 años, 1 mes
Puntos: 1
http://home.ubalt.edu/abento/linux/terminal/sudo.html
  #5 (permalink)  
Antiguo 03/01/2005, 17:45
Avatar de kesthers  
Fecha de Ingreso: mayo-2004
Ubicación: Valencia
Mensajes: 358
Antigüedad: 13 años, 6 meses
Puntos: 2
Se podria hacer algo tipo:

Código PHP:
exec("su root passwd"
Esque cuando ejecutas su root luego te pide la clave.
No se le puede enviar todos los datos de una?
  #6 (permalink)  
Antiguo 04/01/2005, 05:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Para eso está la aplicación "sudo" que te dejó el link sism82 (revisastes el link?) .. esa aplicación (que puede tener instalado ya o no en tu distribución de linux) te sirve para cambiar por el momento de usuario y aceptando como parámetros de la ejecución de dicho comando tu "usuario" y "contraseña" que quieres cambiar .. Así PHP tomará el usuario root o el que tengas que usar y cuando termines las ejecuciones de tus comandos .. volver al que PHP use.

Un saludo,
  #7 (permalink)  
Antiguo 05/01/2005, 08:24
Avatar de kesthers  
Fecha de Ingreso: mayo-2004
Ubicación: Valencia
Mensajes: 358
Antigüedad: 13 años, 6 meses
Puntos: 2
Pues no se si sera porque esta en ingles, pero he estado buscando esa opcion y no la encuentro.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:23.