SSH - buffer_get_ret: попытка получить больше байтов 4, чем в буферном 0

Я пытаюсь сделать туннель.

Когда я выполняю команду

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

туннель запускается. Bu, которым проблема состоит в том, что это через какое-то время прекращает работать.

Таким образом я узнал, что мне нужен autossh. Попробованный этим, которое затем попробовали супервизором. Ничто не помогло.

В файле var/журнала/системного журнала я вижу партию журналов, и первые жизни, которые происходят:

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

Я ищу то, что означает эта ошибка:

http://www.brandonchecketts.com/archives/ssh-error-trying-to-get-more-bytes-4-than-in-buffer-0

Проблемой является на самом деле поврежденная строка в пользователи ~/.ssh/authorized_keys файл. Этот пользователь имел, копируют/вставляют новый ключ в его authorized_keys файл, и он имел новую строку после ssh-rsa. Странно достаточно люди все еще смогли пройти проверку подлинности, если их ключ был выше поврежденной строки. Пользователи, ключ которых был упомянут ниже поврежденная строка, не смогли войти в систему.

В моем .ssh каталоге нет никакого authorized_keys файла. Но также и в одном комментарии говорится, что эта проблема может состоять в том, потому что known_hosts имеют новую строку в конце файла.

Затем я проверяю, существует ли новая строка:

cat -A known_hosts

Там я видел знак $, я не уверен, возможно, это означает новую строку, возможно, нет. Но когда выполнение без-A параметра там не является никаким знаком $.

Я пытался работать

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

удалить новую строку как туда записано: https://stackoverflow.com/questions/16365155/removing-a-newline-character-at-the-end-of-a-file

но не помог.

Как зафиксировать это?

3
задан 23 May 2017 в 15:39

2 ответа

Узнанный, что в файле удаленного сервера authorized_keys был плох - это имело несколько строк для одного ключа

https://wiki.mcs.anl.gov/IT/index.php/SSH_Keys:authorized_keys

, Не уверенный, почему это было так. После того, как удаленные окончания строки, где они не имели быть, проблема, были решены.

6
ответ дан 1 December 2019 в 13:26

Для меня ~/.ssh/known_hosts в моей локальной системе было плохо. Я удалил его и затем снова соединился со всеми серверами без проблемы.

1
ответ дан 1 December 2019 в 13:26

Другие вопросы по тегам:

Похожие вопросы: