¿Cómo puedo iniciar automáticamente un túnel SSH -D al iniciar sesión para un proxy SOCKS?

9

Sé que si quiero comenzar un túnel SSH

ssh -d 9000 user@userserver

Esta es una solución para abrir un túnel dinámico en el puerto 9000 para un usuario llamado "usuario" en el servidor "servidor de usuarios"

Sin embargo, ¿cómo puedo automatizar este proceso en Ubuntu para no tener que abrir un terminal cada vez que inicio sesión y empiezo el túnel? Quiero ser SSH'd en el momento en que inicie sesión.

Sé que podría crear un archivo bash, pero ¿no tendría que almacenar la contraseña del usuario de mi servidor en texto sin formato, ya que se me solicitaría después del comando inicial?

dalanmiller
fuente
3
puedes configurar ssh-keys en lugar de usar una contraseña (ver pkeck.myweb.uga.edu/ssh ), pero no importa cómo sea tu configuración, comprometerás la seguridad si automatizas el inicio de sesión ...
LassePoulsen
No es exactamente acerca de su pregunta, pero le recomiendo que intente usar sshuttlepara enrutar su Internet a través de un SSH. No resuelve problemas de inicio de sesión sin contraseña.
Oxwivi
Si configuró SSH sin contraseña como respondí, sshuttletambién se puede iniciar automáticamente (nota, sshuttlerequiere privilegios de administrador para ejecutarse).
Oxwivi

Respuestas:

9
  1. Configure el inicio de sesión SSH sin contraseña de acuerdo con esta respuesta :

    • ssh-keygen (se le pedirá una contraseña, déjela en blanco)

    • ssh-copy-id user@userserver (ingrese su contraseña de inicio de sesión SSH por última vez)

  2. Agregue una entrada de inicio para SSH:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Oxwivi
fuente
@Stefano, gracias! ¡La mitad del crédito va para Rinzwind y Marco, que me aclararon sobre SSH sin contraseña en primer lugar!
Oxwivi
1

Qué tal usar una configuración de clave ssh, como sugirió Source Lab, pero configurar su clave con una frase de paso y asegurarse de que ssh-agent se esté ejecutando en su máquina, por lo que solo debe ingresarse una vez por sesión de inicio de sesión.

Hay algunas ventajas al hacerlo de esta manera: - Puede obtener un inicio de sesión automático sin contraseña (aparte del primer inicio / inicio de sesión) cada vez que emite su comando ssh - Su clave tiene una frase de contraseña, por lo que es más segura - Usar claves de pub / privado es muy estándar y será compatible con la mayoría de las instalaciones del servidor SSH

Para configurar la autenticación de clave SSH:

Para usar ssh-agent / keychain (para almacenar en caché la frase de contraseña durante la sesión de inicio de sesión):

En cuanto a la automatización de la creación del túnel al inicio, una idea podría ser crear un script de shell rápido que inicie el túnel:

~$ sudo cat <<EOF >> /usr/local/bin/start_tunnel.sh
ssh-add # ensure key is added to agent
ssh -D 9000 user@userserver # substitute real server in here (of course)
EOF
~$ chmod +x /usr/local/bin/start_tunnel.sh

Luego agréguelo como un programa de inicio (Sistema -> Preferencias -> Aplicaciones de inicio), ¡debería funcionar de todos modos!

kwiksand
fuente
¿Hay alguna forma de hacer esto a través de la sección de proxy de red de la configuración en Ubuntu? ¿Hay una opción para la verificación del usuario y puede ingresar previamente su nombre de usuario y contraseña? En caso de que mi configuración cambie, no me gustaría tener que entrar y volver a editar el archivo.
dalanmiller
Me temo que eso no funciona, ni siquiera con autossh.
skerit
-1
sudo ssh-keygen #type Enter everywhere
sudo cat /home/root/.ssh/ id_dsa.pub >> .ssh/authorized_keys

/etc/rc.local agregar cadena:

echo "ssh socks 192.168.0.1:8000" ; sudo ssh -fND 192.168.0.1:8000 localhost
usuario189643
fuente
Tenga en cuenta que la configuración de una clave ssh está dedicada. Aceptar ciegamente todas las indicaciones sin leer lo que se está haciendo podría comprometer su servicio / sistema.
Braiam