Eu configurei um túnel ssh reverso através das máquinas A (local, atrás de vários roteadores) B (intermediários) e C (remoto, aquele do qual estou tentando acessar A)
Depois de colocar todas as chaves relevantes em todas as máquinas, se eu fizer
autossh -M 10984 -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no -i /home/user/.ssh/id_rsa.pub 9999:localhost:22 user@machine-B
na máquina A, posso conectar da máquina C à máquina B (intermediários) até A através da porta 9999.
Agora adicionei
autossh -M 10984 -N -f -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no -i /home/user/.ssh/id_rsa.pub 9999:localhost:22 user@machine-B &
ao meu arquivo /etc/rc.local
, para que o comando seja executado na inicialização, reinicializado e agora o tunelamento não funcionará.
Eu recebo um erro
autossh[1966]: starting ssh (count 14)
autossh[1966]: ssh child pid is 4916
autossh[1966]: ssh exited with error status 255; restarting ssh
no syslog.
Meu /etc/rc.local
tem:
autossh -M 10984 -N -f -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /home/user/.ssh/id_rsa.pub -R 9999:localhost:22 user@machine-B &
ethtool -s eth0 autoneg on
exit 0
Alguma ideia do que eu posso estar fazendo errado?
UPDATE: notei que enquanto
autossh -M 10984 -N -f -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /home/user/.ssh/id_rsa.pub -R 9999:localhost:22 user@machine-B
funciona na linha de comando, sudo-it:
sudo autossh -M 10984 -N -f -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /home/user/.ssh/id_rsa.pub -R 9999:localhost:22 user@machine-B
faz com que a linha de comando me indique a senha de chave pública, mesmo que não tenha senha secreta.
Eu li em outra pergunta do Stack (que não consigo encontrar) que o sinalizador -f
impede que ssh
solicite mais informações. Como thigs em rc.local
são executados como root (até onde eu sei), acho que é por isso que autossh
continua criando ssh
process que saem sem sucesso. De fato, remover o -f
faz com que o ubuntu continue criando janelas solicitando a frase secreta. Eu não entrei passprase ao criar a chave.