• Jueves 14 de Noviembre de 2024, 23:01

Autor Tema:  Script en shell  (Leído 2360 veces)

lair

  • Miembro MUY activo
  • ***
  • Mensajes: 213
  • Nacionalidad: mx
    • Ver Perfil
Script en shell
« en: Lunes 13 de Abril de 2009, 23:00 »
0
Hola a todos.

en esta ocacion tengo un pequeño problemita con un pequeño escript, su contenido es el siguiente:

Código: Bash
  1. #!/bin/sh
  2. echo "Conectando con el servidor..."
  3. ssh usuario@direccion_ip
  4.  

la cuestion es que no se como especificarle la contraseña para que se loguee automaticamente.

eh intentado
Código: Bash
  1. #!/bin/sh
  2. echo "Conectando con el servidor..."
  3. ssh usuario@direccion_ip
  4. password
  5.  

tambien
Código: Bash
  1. #!/bin/sh
  2. echo "Conectando con el servidor..."
  3. ssh usuario@direccion_ip
  4. echo "password"
  5.  

estoy algo verde en esta cuestion.

gracias a todos por su tiempo y ayuda
« última modificación: Sábado 18 de Abril de 2009, 03:59 por su - »

grandzam

  • Miembro MUY activo
  • ***
  • Mensajes: 118
    • Ver Perfil
Re: Script en shell
« Respuesta #1 en: Martes 14 de Abril de 2009, 12:55 »
0
Bueno por lo que veo tienes interés en loguearte al ssh sin que tengas que escribir el password, solamente corriendo un script, bueno esto lo puedes hacer gracias a dos paquetes que tendrás que instalar:

1.- expect.- Espera a que algo aparezca en la pantalla para ejecutar una acción
2.- send.- Bueno este no es propiamente un paquete, viene con nmh, envía mensajes a la pantalla

Yo tengo suse 11.1 pero no creo que haya mucha diferencia en las demás distribuciones, para expect

Código: Bash
  1. zypper install expect
  2.  

para send

Código: Bash
  1. zyper install nmh
  2.  

una vez instalado ejecuta

Código: Bash
  1. install-mh
  2.  

Enseguida te saldrán algunas preguntas, (hace mucho que instalé eso, pero creo que puse y o Y en las que me salieron)

Ya hecho esto, procedemos a crear el script, claro habrá que cambiar las variables:

Código: Bash
  1.  
  2. #!/usr/bin/expect -f
  3.  
  4. send "Conectando con el servidor...n"
  5.  
  6. set ipaddr "10.176.67.243"
  7. set password "laid458adf6846"
  8. set usuario "root"
  9.  
  10. spawn ssh $usuario@$ipaddr
  11.  
  12. expect "*?assword:*" {send "$passwordn"}
  13.  
  14. interact
  15.  
  16.  

Bueno espero que te sirva, hasta luego... ah también te dejo el script para que lo descargues, si quieres cambia la extensión, no me dejó subirlo con otra extension, pero igual ejecutándolo funciona... Recuerda ponerle permisos de ejecución

Código: Bash
  1. chmod u+x
  2.  
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
« última modificación: Sábado 18 de Abril de 2009, 04:00 por su - »

lair

  • Miembro MUY activo
  • ***
  • Mensajes: 213
  • Nacionalidad: mx
    • Ver Perfil
Re: Script en shell
« Respuesta #2 en: Martes 14 de Abril de 2009, 17:09 »
0
ok muchas gracias, lo voy a probar, nadamas una cosa. yo tengo fedora 10 me imagino que los paquetes que me mensionas los tengo que instalar con yum, en lugar de lo que tu llamas zypper ¿o tambien eso es parte del paquete?

grandzam

  • Miembro MUY activo
  • ***
  • Mensajes: 118
    • Ver Perfil
Re: Script en shell
« Respuesta #3 en: Martes 14 de Abril de 2009, 20:27 »
0
Sip, zypper es el administrador de paquetes

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Script en shell
« Respuesta #4 en: Sábado 18 de Abril de 2009, 03:58 »
0
Lo malo de eso es que se puede ver el password con un simple cat... yo usaria un lenguaje compilable.
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

GsOiD

  • Miembro activo
  • **
  • Mensajes: 83
  • Nacionalidad: mx
    • Ver Perfil
Re: Script en shell
« Respuesta #5 en: Jueves 23 de Abril de 2009, 09:27 »
0
no se si ayude de algo, pero si quieres establecer una comunicacion sin que pida el password puedes hacerlo mediante una clave publica, y creo que ser'ia menos riesgoso, y si no es muy necesario estar mandando el password, ps esto te ayudar'a... yo apenas hice esto y no tengo que poner la clave cada vez que me conecto...

Identificación del cliente mediante clave pública
 
El cliente puede identificarse mediante clave pública, sin password. Para ello:
 
- creamos en el cliente una clave RSA:
 
Código: Text
  1.  
  2. cliente@asterix:~$ ssh-keygen -t rsa -f ~/.ssh/id_rsa
  3.  
  4.  
 
- activamos ssh-agent en el cliente para que no nos pida la pass-phrase:
Código: Text
  1.   
  2. cliente@asterix:~$ eval `ssh-agent -s`
  3. Agent pid 12297
  4. cliente@asterix:~$ ssh-add
  5. Enter passphrase for /home/francis/.ssh/id_rsa:
  6. Identity added: /home/francis/.ssh/id_rsa (/home/cliente/.ssh/id_rsa)
  7.  
  8.  
 
- copiamos en el servidor la clave pública (~/.ssh/id_rsa.pub):

Código: Text
  1.   
  2. cliente@asterix:~$ scp ~/.ssh/id_rsa.pub servidor@obelix:~/.ssh/id_rsa.pub
  3.  
  4.  

- la añadimos en el servidor al final del fichero ~/.ssh/authorized_keys:
 
Código: Text
  1.   
  2. servidor@obelix:~$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  3.  
  4.  
 
- y comprobamos que podemos iniciar una sesión SSH sin password ni pass-phrase:
Código: Text
  1.    
  2. cliente@asterix:~$ ssh mario@obelix
  3. servidor@obelix:~$
  4.  
  5.  


ya entonces, yo supongo que no ser'a necesario mandar la clave en tu script ...  :rolleyes:

lair

  • Miembro MUY activo
  • ***
  • Mensajes: 213
  • Nacionalidad: mx
    • Ver Perfil
Re: Script en shell
« Respuesta #6 en: Viernes 24 de Abril de 2009, 17:25 »
0
hola y gracias a todos por su tiempo y ayuda.

ya realice eso que necesitaba, lo hice con una clave publica.

gracias de nuevo a todos