Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/05/2015, 03:22
Chivitoni
 
Fecha de Ingreso: febrero-2015
Mensajes: 56
Antigüedad: 9 años, 2 meses
Puntos: 1
Exclamación Problema para ejecutar un comando remoto con ssh

Buenas a todos, estoy realizando mi proyecto de fin de carrera y me he encontrado con un error que no me esperaba.
La situación es la siguiente:
Tengo dos máquinas virtuales y mi objetivo es sacar información de una a través de la otra por ssh y scp. Pues bien ,para ello tengo un script que me funciona y hace esa función:

#!/bin/bash
HOST="192.168.80.128"
USER="root"
PASS="root"
CMD="ls"
VAR=$(expect -c "
spawn ssh -o StrictHostKeyChecking=no $USER@$HOST $CMD
match_max 100000
expect "*?assword:*"
send -- "$PASSr"
send -- "r"
expect eof
")
echo "==============="
echo "$VAR"


pues bien,ese código me devuelve por pantalla de consola la salida del comando ls ejecutado en la otra máquina virtual y como mi objetivo es guardar esa información en un fichero yo lo que hacía era:
/var/www/proyecto/ls.exp > /var/www/proyecto/ls.txt

y ya lo tenia todo hecho y funcionando.

El problema surge cuando quiero hacer esto desde mi página web, ya que a parte de no poder guardarlo en un fichero(lo hago con la funcion system):

system("/var/www/proyecto/ls.exp > /var/www/proyecto/ls.txt");

pues me devuelve siempre un error y no se ejecuta el comando en la otra máquina virtual,el error que me sale es el siguiente:

Could not create directory '/var/www/.ssh'. Failed to add the host to the list of known hosts (/var/www/.ssh/known_hosts). [email protected]'s password

He buscado por internet pero no consigo arreglarlo ya que a mi por consola me funciona pero necesito que también funciona a través del navegador.El problema creo que es que al hacerlo desde la página web,no se ejecuta como usuario "root".

Si alguien me ayudara con esto se lo agradecería un montón,ya que sin esto no sabría como terminar mi proyecto.

Un saludo y muchas gracias.