autossh em segundo plano não funciona

10

Eu configurei um túnel via autossh.

Isso funciona:

autossh -M 33201 -N -i myIdFile -R 33101:localhost:22 [email protected]

Eu gostaria de rodar o autossh em segundo plano. Parece fácil usando a opção -f .

Isso não funciona, no entanto:

autossh -f -M 33201 -N -i myIdFile -R 33101:localhost:22 [email protected]

Autossh é executado em segundo plano, mas a conexão ssh parece falhar a cada vez. Em / var / syslog eu 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 isso tem algo a ver com a autenticação via arquivo de chave. Como posso depurar isso (adicionando -v para as opções ssh parece não logar em qualquer lugar).

Editar: 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

Portanto, parece que o autossh não aceita meu arquivo de identidades ( -i myIdFile ) ao usar a opção -f. Por que isso?

(autossh 1.4c em Raspian)

    
por henning77 27.08.2013 / 20:08

2 respostas

23

Parece que quando o autossh cai para o segundo plano (opção -f) ele está mudando o diretório de trabalho, o que significa que os caminhos relativos não funcionam mais. Ou mais específico: Ao entrar no caminho absoluto do seu arquivo de id você provavelmente terá sucesso.

Eu recriar o cenário criando uma chave sem senha em um local não padrão:

~/$ mkdir test
~/$ cd test
~/test$ ssh-keygen -f test_id_rsa

Eu simplesmente pressiono enter duas vezes para gerar uma chave que não está protegida por uma senha.

copiei a nova chave para o meu servidor (o que permite a autenticação de senha atualmente):

~/test$ ssh-copy-id -i test_id_rsa user@server

Primeiro eu confirmei que a chave estava trabalhando com o ssh regular, então usando o autossh como você:

~/test$ ssh -i test_id_rsa user@server
~/test$ autossh -M 13000 -N -i test_id_rsa user@server
^C

Ambos funcionaram bem, então recriou o problema que você tinha:

~/test$ autossh -f -M 13000 -N -i test_id_rsa user@server

Isso não funcionou e o seguinte foi escrito em /var/log/syslog :

autossh[2406]: ssh exited prematurely with status 255; autossh exiting

Ao mudar o caminho do arquivo de chaves para ser absoluto, funcionou:

~/test$ autossh -f -M 13000 -N -i /home/user/test/test_id_rsa user@server

Nenhum erro em /var/log/syslog .

    
por 10.10.2013 / 12:56
3

Não tenho certeza do que está acontecendo com o -f, mas você também pode nohup:

nohup autossh -M 33201 -N -f -i myIdFile -R 33101:localhost:22 [email protected] &
    
por 27.08.2013 / 23:50