Iniciar autossh al iniciar el sistema

15

¿Hay alguna manera de comenzar autosshal inicio, para que se inicie y configure el túnel ssh antes de que un usuario haya iniciado sesión? Arranco Ubuntu en la terminal, y me gustaría que el autosshproceso se inicie automáticamente al inicio para que pueda ingresar.

Intenté agregar el comando /etc/rc.localy crear un /etc/init/*.confscript. Ninguno de estos parece funcionar.

ptf
fuente
¿Qué versión de Ubuntu es esta?
George Udosen
@George 16.04 LTS.
ptf

Respuestas:

20

Usando systemdesto se puede hacer (muestra autosshcreada para mysqlel acceso):

  1. Crear un archivo de systemd utilizando nanoo vimo editor apropiado de elección:

    sudo vim /etc/systemd/system/autossh-mysql-tunnel.service 
    
  2. Agregue los siguientes contenidos:

    [Unit]
    Description=AutoSSH tunnel service everythingcli MySQL on local port 5000
    After=network.target
    
    [Service]
    Environment="AUTOSSH_GATETIME=0"
    ExecStart=/usr/bin/autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -NL 5000:localhost:3306 [email protected] -p 1022
    
    [Install]
    WantedBy=multi-user.target
    
  3. Recargar systemd:

    sudo systemctl daemon-reload
    
  4. Comience el Autosshservicio:

    sudo systemctl start autossh-mysql-tunnel.service
    
  5. Habilitar en boot:

    sudo systemctl enable autossh-mysql-tunnel.service
    
  6. Verifique el estado con:

    sudo systemctl status autossh-mysql-tunnel
    

Nota

Sin embargo, hay algo importante a tener en cuenta sobre systemd y AutoSSH: -f (uso en segundo plano) ya implica AUTOSSH_GATETIME=0, sin embargo, no -fes compatible systemd.

Entonces, en el caso de systemdque necesite hacer uso deAUTOSSH_GATETIME

Fuente

George Udosen
fuente
¡Gracias! Estoy intentando esto, pero cuando corro sudo service reverse-ssh-tunnel.service status, me sale Loaded: not-found (Reason: No such file or directory). Investigando esto ahora :)
ptf
por favor sudo systemctl status reverse-ssh-tunnelnosudo service reverse-ssh-tunnel.service status
George Udosen
2
Creo que te refieresautossh -i /home/<user>/.ssh/id_rsa -R 22222:localhost:22 <user>@<remote_host>
George Udosen
2
Necesitaba agregar -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=notambién. Tal vez solo necesito uno de ellos, no los he probado individualmente. Encontré esto aquí: stackoverflow.com/a/24689061/1211119 . Sin embargo, cuando miro la pantalla de inicio de sesión de tty1 (inicio en el terminal), el servicio aún no ha creado el túnel. Si inicio sesión, se inicia el servicio.
ptf
2
A veces desea ejecutar en un contexto de usuario diferente. Para hacer esto: Agregue User=usernamea la [Service]sección en el archivo systemd.
friederbluemle