1 votos

¿Cómo abrir un proxy de socks SSH al inicio?

Uso proxies de socks remotos para ocasiones en las que necesito una IP de varias ubicaciones. Hay uno que uso mucho más que los demás, al punto de que me gustaría que se abriera una conexión por defecto al arrancar mi máquina cliente.

Actualmente tengo que abrir la terminal, ejecutar un comando SSH -D, escribir una contraseña y luego el proxy está activo. Realmente me gustaría automatizar esto de alguna manera al iniciar, pero parece que no logro descubrir cómo hacerlo. Tengo conocimientos intermedios en cosas de CLI pero soy un novato en scripting de shell, por lo que ni siquiera sé por dónde empezar.

¿Hay alguna manera fácil de hacer que esta conexión SSH se inicie automáticamente al arrancar el cliente?

Hasta ahora, en mi búsqueda de una solución, he encontrado esto y lo estoy ejecutando como un flujo de trabajo automático utilizando el módulo Run Shell Script:

ip=aa.bb.cc.dd   #reemplazar con la ip de su servidor unix
username=yyyyyyyyyy #su nombre de usuario ssh
password=xxxxxxxxxxxxxxxxx #su contraseña ssh
comando=ssh -D 2002     #qué desea hacer con el servidor remoto
argumentos=-Cq     #argumentos para su comando
esperar -c 'spawn ssh $username@$ip ; expect password ; enviar "$password\n" ; interactuar'

Parece que funciona, en el sentido de que Automator no muestra errores y dice que el flujo de trabajo se completó. Sin embargo, el proxy no es accesible desde un navegador, así que claramente algo está mal.

Estoy usando Mavericks, las últimas actualizaciones.

1voto

Jakuje Puntos 318

Necesitas pasar los argumentos al comando ssh que estás ejecutando, no a algunas variables:

ip=aa.bb.cc.dd   #reemplaza con la ip de tu servidor Unix
username=yyyyyyyyyy #tu nombre de usuario de ssh
password=xxxxxxxxxxxxxxxxx #tu contraseña de ssh
command="ssh -D 2002"     #qué deseas hacer con el servidor remoto
arguments=-Cq     #argumentos para tu comando
expect -c 'spawn $command $arguments $username@$ip ; expect password ; send "$password\n" ; interact'

0 votos

Aha... ¿entonces no puedo simplemente incluir $command en la línea final? Hacerlo no está funcionando para mí... ¿me pregunto por qué no? expect -c 'spawn $command $username@$ip ; expect password ; send "$password\n" ; interact'

0 votos

Por supuesto, si te parece que se ve mejor.

0 votos

Pero Automator no parece gustar de eso... ( "-: línea 3: -D: comando no encontrado", "no se puede leer "command": no hay tal variable", " mientras se ejecuta", ""spawn $command $username@$ip " " )

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X