Eu tenho um servidor que hospeda túneis SSH e clientes do OpenBSD 4.5 conectados a ele.
As coisas funcionam muito bem, mas estou precisando automatizar a conexão do cliente para o servidor. Assim, se o cliente for reiniciado acidentalmente, a conexão será iniciada sem supervisão.
Portanto, deve ser tão simples quanto incluir a conexão ssh em um script de inicialização. No entanto, eu falhei miseravelmente ao incluí-lo em /etc/rc.local, que é o arquivo em que geralmente faço esse tipo de coisa.
Agora mesmo estou usando autossh para também reiniciar a conexão, se necessário, e o script que Eu coloquei em /etc/rc.local segue:
#!/bin/sh
#
# Example script to start up tunnel with autossh.
#
# This script will tunnel 2200 from the remote host
# to 22 on the local host. On remote host do:
# ssh -p 2200 localhost
#
# $Id: autossh.host,v 1.6 2004/01/24 05:53:09 harding Exp $
#
ID=root
HOST=example.com
#AUTOSSH_POLL=600
#AUTOSSH_PORT=20000
#AUTOSSH_GATETIME=30
#AUTOSSH_LOGFILE=$HOST.log
#AUTOSSH_DEBUG=yes
#AUTOSSH_PATH=/usr/local/bin/ssh
export AUTOSSH_POLL AUTOSSH_LOGFILE AUTOSSH_DEBUG AUTOSSH_PATH AUTOSSH_GATETIME AUTOSSH_PORT
autossh -2 -f -M 20000 ${ID}@${HOST}
O script se destaca bem quando executado manualmente, então incluo-o no /etc/rc.local como
echo -n 'starting local daemons:'
if [ -x /usr/local/sbin/autossh.sh ]; then
echo -n 'ssh tunnel'
/usr/local/sbin/autossh.sh
fi
echo '.'
Eu também tentei chamá-lo de /etc/hostname.tun0 no caso de haver problemas com o /etc/rc.local não ser chamado no momento certo em que as conexões de rede estão prontas, então eu usaria:
inet 10.254.254.2 255.255.255.252 10.254.254.1
!/usr/local/sbin/autossh.sh
Sua opinião é muito apreciada.