Descobriu que no arquivo do servidor remoto authorized_keys era ruim - tinha várias linhas para uma chave
Não sei por que isso aconteceu. Depois de remover as terminações da linha onde elas não estavam, o problema foi resolvido.
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:
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?
Descobriu que no arquivo do servidor remoto authorized_keys era ruim - tinha várias linhas para uma chave
Não sei por que isso aconteceu. Depois de remover as terminações da linha onde elas não estavam, o problema foi resolvido.
Para mim, ~/.ssh/known_hosts
no meu sistema local era ruim. Eu apaguei e depois reconectei a todos os servidores sem problema.
Tags ssh