Problema
Não encontrei uma solução para executar uma porta SSH de forma confiável e persistente, quando o servidor ao qual você está se conectando não suporta a autenticação de chave pública.
Pergunta
Qual é a maneira mais razoável de manter viva uma porta SSH persistente quando uma senha é necessária? Levando em conta a segurança e confiabilidade (percebo que não é ideal). Estou feliz por precisar de uma senha ao iniciar (ou seja, não persistente em reinicializações do servidor, isso deve impedir que um script real tenha uma senha de texto sem formatação), mas preciso que ele seja confiável em vez de desconexões.
Motivação
O servidor ao qual desejo me conectar está por trás de uma série de firewalls, e estou usando o encaminhamento de porta SSH local para expor um servidor da Web à Internet pública. No momento, estou usando o encaminhamento de porta padrão, mas recebendo erros de 'canal interrompido' a cada alguns dias e quero que ele reinicie automaticamente a conexão com esses tipos de falhas.
Tentativas
Eu tentei usar AutoSSH , mas parece supor que você tem autenticação de chave pública. Eu não consegui fazer com que funcionasse com algum tipo de autenticação de senha.
Eu tentei usar sshpass , mas não obtive êxito no encaminhamento de porta para o trabalho isto. Acho que pode ficar confuso com a mensagem de boas vindas que o servidor SSH fornece.
Por que não consigo ativar a autenticação por chave pública?
Foi configurado pelo projeto pela TI para exigir uma senha, por motivos de política. Eu não tenho acesso root ao servidor e não posso alterá-lo. Eu gostaria de usar a autenticação de chave pública, mas estou preso com o que tenho.
Idéias
Atualização - solução alternativa
Esta não é realmente uma solução para a questão dada, mas resolveu o meu problema original. Acabei usando um proxy reverso em vez de um proxy local, isso me permitiu usar chaves públicas e autossh.
autossh -M 20000 -nNT -R *:80:localhost:80 [email protected]