Linux/Unix Shell Scripting - Script de conexion por ssh

   
Vista:

Script de conexion por ssh

Publicado por Tomas (13 intervenciones) el 01/06/2015 12:45:28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/bash
echo "¿A dónde quires conectarte?"
echo "1- Recursos_humanos.com"
echo "2- Ventas.com"
echo "3- Marqueting.com"
 
#habrá un servidor dns por medio, pero por ahora improviso.
rrhh="192.168.1.10"
 
 
echo "Elija el Nº de departamento"
read departamento
echo "Escriba su usuario y password y presione enter"
read usuario
read password
 
if [ $departamento -eq 1 ]; then
 
CMD=$@
VAR=$(expect -c "
spawn ssh -o StrictHostKeyChecking=no $usuario@$rrhh $CMD
match_max 100000
expect \"*?assword:*\";
send -- \"$password\r\";
send -- \"\r\"
expect eof
")
echo "$VAR"
echo "----------------"
echo "Welcome to Recursos_humanos.com"
 
fi

El scrip funciona perfectamente, pero me finaliza la conexión, yo quiero mantenerla y que la ejecución pase a background. ¿Alguien sabe cómo hacerlo?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Script de conexion por ssh

Publicado por Tom (253 intervenciones) el 01/06/2015 17:20:07
Si lees la página man de expect te habla del asunto (probablemente solamente tienes que añadir un disconnect por algún sitio).
Pero entonces ¿ qué esperas conseguir como contenido de la variable VAR ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Script de conexion por ssh

Publicado por Tomas (13 intervenciones) el 01/06/2015 17:46:18
El script lo tome prestado de una web, agregué los echo, read y el if. Lo que hace $VAR es imprimir la salida de advertencias y logueo del SSH y ademas poder combinar expect con bash (segun mis pruebas).
Me lei el man de expect como dijistes y parece que disconnect tiene que ver con eso, y tambien tiene que ver con procesos hijos, entonces ya no entendi nada.
Gracias por la ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Script de conexion por ssh

Publicado por Tom (253 intervenciones) el 01/06/2015 18:06:49
En vez de meterte en líos, si no quieres aprender cómo funciona expect (*), echa un ojo a 'sshpass' que te ayudará bastante más:

http://www.cyberciti.biz/faq/noninteractive-shell-script-ssh-password-provider/

* Por cierto, aunque nunca había hecho nada con expect, esto parece que me funciona, asumiendo que el prompt de la máquina remota sea el que he puesto.

#!/usr/bin/expect

spawn ssh $host_remoto
expect "Password: "
send $passwd_usuario "\n"
expect "~$ "
send $comando_a_ajecutar "\n"
expect "~$ "
close
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar