Eu montei um túnel via autossh.
Isso funciona:
autossh -M 33201 -N -i myIdFile -R 33101:localhost:22 [email protected]
Eu gostaria de executar autossh em segundo plano. Parece fácil usando a -f
opção
Isso não funciona, no entanto:
autossh -f -M 33201 -N -i myIdFile -R 33101:localhost:22 [email protected]
A execução automática é executada em segundo plano, mas a conexão ssh parece falhar sempre. Em / var / syslog, vejo várias ocorrências de:
autossh[3420]: ssh exited with error status 255; restarting ssh
O que estou fazendo de errado? Um palpite é que ele tem algo a ver com a autenticação via arquivo de chave. Como posso depurar isso (adicionar -v às opções ssh não parece registrar em nenhum lugar).
Edit: Eu tenho alguns logs ssh usando a opção -y
/usr/bin/ssh[3484]: debug1: Next authentication method: publickey
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_rsa
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_dsa
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_ecdsa
/usr/bin/ssh[3484]: debug1: No more authentication methods to try.
/usr/bin/ssh[3484]: fatal: Permission denied (publickey).
autossh[3469]: ssh exited with error status 255; restarting ssh
Parece que o autossh não aceita meu arquivo de identificação ( -i myIdFile
) ao usar a opção -f. Por que é que?
(autossh 1.4c em Raspian)
ssh
ssh-tunnel
henning77
fonte
fonte
Respostas:
Parece que quando o autossh cai para o plano de fundo (opção -f) ele está alterando o diretório de trabalho, o que significa que os caminhos relativos não funcionam mais. Ou mais específico: digitando o caminho absoluto do seu arquivo de identificação, você provavelmente terá êxito.
Recriei o cenário criando uma chave sem senha em um local não padrão:
Eu simplesmente apertei enter duas vezes para gerar uma chave que não é protegida por uma senha.
Copiei a nova chave no meu servidor (que atualmente permite a autenticação de senha):
Primeiro, confirmei que a chave estava trabalhando com ssh normal e depois usando autossh como você:
Ambos funcionaram bem, então recriei o problema que você tinha:
Isso não funcionou e o seguinte foi escrito para
/var/log/syslog
:Ao mudar o caminho do arquivo de chave para absoluto, funcionou:
Não há erros no
/var/log/syslog
.fonte
Não sei o que está acontecendo com o -f, mas você também pode fazer o nhup:
fonte
nohup
Também trabalhou para a execuçãoautossh
sobrunit
a Alpine LinuxAdicione os seguintes parâmetros ao SSH para ignorar "Tem certeza de que deseja continuar a conexão (sim / não)?"
O comando final estaria no seguinte formato:
fonte
StrictHostKeyChecking=no
menos que esteja se conectando a um brinquedo efêmero conhecido - e esteja optando por ser preguiçoso.