SSH - buffer_get_ret: tentando obter mais bytes 4 do que no buffer 0

3

Estou tentando fazer um túnel.

Quando executo o comando

ssh [user]@[host] -p [port] -L [localport]:[ip]:[port2] -N -vv -y -i /home/glab/.ssh/id_rsa

o túnel começa. Bu o problema é que depois de algum tempo deixa de funcionar.

Então eu descobri que preciso de autossh. Tentei com isso, então tentei com o supervisor. Nada ajudou.

No arquivo var / log / syslog eu vejo muitos logs, e as primeiras vidas que vêm são:

Oct 21 07:40:01 localhost autossh[17521]: starting ssh (count 8)
Oct 21 07:40:01 localhost autossh[17521]: ssh child pid is 17541
Oct 21 07:40:01 localhost /usr/bin/ssh[17541]: OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
Oct 21 07:40:01 localhost /usr/bin/ssh[17541]: debug1: Reading configuration data /etc/ssh/ssh_config
Oct 21 07:40:01 localhost /usr/bin/ssh[17541]: debug1: /etc/ssh/ssh_config line 19: Applying options for *
Oct 21 07:40:01 localhost /usr/bin/ssh[17541]: debug2: ssh_connect: needpriv 0
Oct 21 07:40:01 localhost /usr/bin/ssh[17541]: debug1: Connecting to [ipaddress] [ipaddress] port [port].
Oct 21 07:40:01 localhost /usr/bin/ssh[17541]: debug1: Connection established.
Oct 21 07:40:01 localhost /usr/bin/ssh[17541]: error: buffer_get_ret: trying to get more bytes 4 than in buffer 0
Oct 21 07:40:01 localhost /usr/bin/ssh[17541]: error: buffer_get_string_ret: cannot extract length
Oct 21 07:40:01 localhost /usr/bin/ssh[17541]: error: key_from_blob: can't read key type
Oct 21 07:40:01 localhost /usr/bin/ssh[17541]: error: key_read: key_from_blob \n failed

Eu pesquiso o que esse erro significa:

link

  

O problema é, na verdade, uma linha corrompida em um usuário   arquivo ~ / .ssh / authorized_keys. Este usuário tinha copiado / colado uma nova chave em   seu arquivo authorized_keys e ele tinha uma nova linha após o ssh-rsa.   Estranhamente, as pessoas ainda eram capazes de autenticar se a sua chave   estava acima da linha corrompida. Usuários cuja chave foi listada abaixo do   a linha corrompida não conseguiu efetuar login.

Não há arquivo authorized_keys no meu diretório .ssh. Mas também um comentário diz que esse problema pode ser porque known_hosts tem nova linha no final do arquivo.

Então eu verifico se há nova linha:

cat -A known_hosts

Lá eu vi $ assinar, não tenho certeza, talvez isso signifique nova linha, talvez não. Mas quando rodando sem o parâmetro -A, não há sinal $.

Eu tentei rodar

truncate -s $(($(stat -c '%s' known_hosts)-1)) foo

para remover uma nova linha, como está escrito: link

mas não ajudou.

Como consertar isso?

    
por Darius.V 21.10.2014 / 09:53

2 respostas

6

Descobriu que no arquivo do servidor remoto authorized_keys era ruim - tinha várias linhas para uma chave

link

Não sei por que isso aconteceu. Depois de remover as terminações da linha onde elas não estavam, o problema foi resolvido.

    
O
por Darius.V 21.10.2014 / 12:48
1

Para mim, ~/.ssh/known_hosts no meu sistema local era ruim. Eu apaguei e depois reconectei a todos os servidores sem problema.

    
por spyke01 08.04.2015 / 17:38

Tags