Foros del Web » Administración de Sistemas » Apache »

comando por ssh

Estas en el tema de comando por ssh en el foro de Apache en Foros del Web. Buenas amigos tengo un problema para ejecutar un codigo por ssh con php, yo tengo este codigo que hace la conexion y ejecuta los comandos ...
  #1 (permalink)  
Antiguo 27/07/2017, 14:38
 
Fecha de Ingreso: junio-2013
Mensajes: 78
Antigüedad: 4 años, 6 meses
Puntos: 0
Pregunta comando por ssh

Buenas amigos tengo un problema para ejecutar un codigo por ssh con php, yo tengo este codigo que hace la conexion y ejecuta los comandos y todo bien:

Código PHP:
if(!($con ssh2_connect($ip22))){
            echo
'No se puede conectar con la máquina '.$ip;
        } else {
            
//Autentificación
            
if(!ssh2_auth_password($con$user$pass)) {
                echo
'Fallo de autentificación en la máquina '.$ip;
            } else {
                
//Ejecución del comando             
                
$stream ssh2_exec($con'AQUI VA EL COMANDO A EJECUTAR');
                
stream_set_blocking($stream,true);
                
$output stream_get_contents($stream);
                echo 
$output;
            }
        } 
El funciona y todo correctamente el problema es cuando el comando pide confirmacion o clave de usuario porque necesito ejecutar esete codigo:

Código PHP:
scp usuario@servidor:ruta_servidor_donde_esta_el_archivo ruta_ordenador_local_donde_poner_el_archivo 
cuando coloco ese comando para copiar archivos de un servidor a otro por consola me pide una confirmacion donde hay que colocar yes o no, y luego pide la contraseña del usuario del otro servidor, y hay con php no consigo la manera de colocar una segunda linea con el yes y luego una tercera con la contraseña


eh intentado asi pero nada que funciona:

Código PHP:
if(!($con ssh2_connect($ip22))){
            echo
'No se puede conectar con la máquina '.$ip;
        } else {
            
//Autentificación
            
if(!ssh2_auth_password($con$user$pass)) {
                echo
'Fallo de autentificación en la máquina '.$ip;
            } else {
                
//Ejecución del comando             
                
$stream ssh2_exec($con'comando scp');
                
$stream ssh2_exec($con'yes');
                
$stream ssh2_exec($con'contraseña');
                
stream_set_blocking($stream,true);
                
$output stream_get_contents($stream);
                echo 
$output;
            }
        } 
y buscado en google y nada tampoco

Si alguien me puede ayudar muchisimas gracias de antemano como siempre.
  #2 (permalink)  
Antiguo 27/07/2017, 15:14
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.741
Antigüedad: 9 años, 4 meses
Puntos: 2113
Respuesta: comando por ssh

Tu problema no es de PHP, sino de ejecución de comandos en la consola con respuestas incluídas.

Supongo que estamos hablando de Apache y muevo tu tema para allá, donde podrán orientarte mejor.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 01/08/2017, 12:59
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.200
Antigüedad: 4 años, 4 meses
Puntos: 384
Respuesta: comando por ssh

Lo correcto sería:
Código PHP:
Ver original
  1. if(!ssh2_auth_password($con, "user", "pass")) {
  2.  
  3. echo "fail: unable to authenticate\n";
  4.  
  5. } else {
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #4 (permalink)  
Antiguo 07/08/2017, 13:41
 
Fecha de Ingreso: junio-2013
Mensajes: 78
Antigüedad: 4 años, 6 meses
Puntos: 0
Pregunta Respuesta: comando por ssh

Cita:
Iniciado por lauser Ver Mensaje
Lo correcto sería:
Código PHP:
Ver original
  1. if(!ssh2_auth_password($con, "user", "pass")) {
  2.  
  3. echo "fail: unable to authenticate\n";
  4.  
  5. } else {
hola lauser la autenticacion funciona bien, solo que quisiera ver si puedo ejecutar la respuesta de ese comando para que copie los archivos ya que me pide la segunda contraseña y no se como hacer para ponerla hay
  #5 (permalink)  
Antiguo 09/08/2017, 12:20
 
Fecha de Ingreso: junio-2013
Mensajes: 78
Antigüedad: 4 años, 6 meses
Puntos: 0
Respuesta: comando por ssh

nadie sabe ?
  #6 (permalink)  
Antiguo 14/08/2017, 10:26
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 14 años, 7 meses
Puntos: 35
Respuesta: comando por ssh

loading.........

Lo que sucede con tu commando es que necesita INTERACCION con el usuario para poner la contrasena.

Lo que podrias hacer es usar PUBLIC KEYS para que el comando SCP copie los archivos sin necesidad de pedir contrasena.

mira aca: https://blog.desdelinux.net/ssh-sin-...-solo-3-pasos/

connection closed.
__________________

Maborak Technologies
  #7 (permalink)  
Antiguo 15/08/2017, 12:30
 
Fecha de Ingreso: junio-2013
Mensajes: 78
Antigüedad: 4 años, 6 meses
Puntos: 0
Respuesta: comando por ssh

Cita:
Iniciado por MaBoRaK Ver Mensaje
loading.........

Lo que sucede con tu commando es que necesita INTERACCION con el usuario para poner la contrasena.

Lo que podrias hacer es usar PUBLIC KEYS para que el comando SCP copie los archivos sin necesidad de pedir contrasena.

mira aca: https://blog.desdelinux.net/ssh-sin-...-solo-3-pasos/

connection closed.
hola MaBoRaK Gracias por responder,

lo que pasa es que ese script es para ejecutarlo en crontab y por ahora no se pueden configura conexiones SSH sin password, por eso era mi duda si habia manera de resolverlo asi.



La zona horaria es GMT -6. Ahora son las 00:36.