
¿Cómo uso la activación de puertos con autoSSH?
Mi solución actual es ejecutar el script.
#! /bin/bash
while :
do
knock myhomecomputer.com 64001 && sleep 1 && knock myhomecomputer.com 64002 && sleep 1 && knock myhomecomputer.com 64003 && sleep 1 && knock myhomecomputer.com 64004
ssh -R 65522:localhost:22 myhomecomputer.com
done
El script anterior se coloca en el crontab como:
@reboot screen -dmS reverseSSH /home/user_me/reverse_ssh_4_myhomecomputer
¿En qué se diferencia dicho script de autoSSH? ¿Qué casos adicionales maneja autoSSH?
La idea es ejecutar el script anterior o autoSSH en la máquina de mi laboratorio detrás del firewall de la universidad para poder acceder mediante SSH desde casa. La computadora de mi casa enfrentó una gran cantidad de ataques SSH de fuerza bruta, por lo que tuve que ponerla detrás de un firewall activado por secuencia de golpe. ¿Existe una mejor manera de manejar esto?
El script anterior funciona y puedo ingresar mediante ssh a la computadora de la universidad usando el siguiente comando en la computadora de mi casa:
ssh -p 65522 localhost
Respuesta1
Así es como solucioné el problema.
Edité
~/.ssh/config
en la máquina del laboratorio para agregar lo siguientehost myhomecomputer.com HostName myhomecomputer.com user user_me IdentityFile ~/.ssh/user_me.openSSH host myhomecomputer HostName myhomecomputer.com user user_me IdentityFile ~/.ssh/user_me.openSSH ProxyCommand bash -c 'source knock_myhomecomputer_ssh; ssh -TN -R 65522:localhost:22 myhomecomputer.com'
Observe los nombres:
myhomecomputer
(alias/atajo) ymyhomecomputer.com
(host real).El
knock_myhomecomputer_ssh
es como -SLEEP_T=0.75 knock myhomecomputer.com 64001 && sleep $SLEEP_T && knock myhomecomputer.com 64002 && sleep $SLEEP_T && knock myhomecomputer.com 64003 && sleep $SLEEP_T && knock myhomecomputer.com 64004
Agregué lo siguiente a mi
crontab
@reboot autossh -f myhomecomputer