Estou executando um script autossh usando upstart para o encaminhamento de ssh tunneling / port para meu banco de dados postgresql. É assim:
# Remote server role: database-master
# Remote hostname: srv-08.aa.com
# Local/remote port: 5432
# autossh startup Script http://www.async.fi/2013/07/autossh-with-ubuntu-upstart/
description "autossh tunnel for role database-master to srv-08.aa.com:5432"
start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [016]
respawn
respawn limit 5 60 # respawn max 5 times in 60 seconds
exec autossh \
-M 0 \
-N \
-L 5432:localhost:5432 \
-o "ServerAliveInterval=60" \
-o "ServerAliveCountMax=3" \
-o "BatchMode=yes" \
-i /home/the_user/.ssh/id_rsa \
[email protected]
Em geral, o encaminhamento funciona bem. No entanto, por vezes, e. quando o servidor remoto reinicia o serviço postgresql, acontece que o túnel se torna inútil (não pode se conectar através dele) e no /var/log/upstart/autossh-master-db-tunnel.log
estou vendo o seguinte erro sendo emitido:
channel 2: open failed: administratively prohibited: open failed
channel 2: open failed: administratively prohibited: open failed
channel 2: open failed: administratively prohibited: open failed
channel 2: open failed: administratively prohibited: open failed
channel 2: open failed: administratively prohibited: open failed
channel 2: open failed: administratively prohibited: open failed
Isso continua até eu fazer um sudo restart autossh-master-db-tunnel
, então tudo funciona de novo.
O que está errado e como posso corrigi-lo? Ou, no início, ficar mais inteligente sobre isso?
Tags ssh ssh-tunnel