Я пытаюсь сделать туннель.
Когда я выполняю команду
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
но не помог.
Как зафиксировать это?
Узнанный, что в файле удаленного сервера authorized_keys был плох - это имело несколько строк для одного ключа
https://wiki.mcs.anl.gov/IT/index.php/SSH_Keys:authorized_keys
, Не уверенный, почему это было так. После того, как удаленные окончания строки, где они не имели быть, проблема, были решены.
Для меня ~/.ssh/known_hosts
в моей локальной системе было плохо. Я удалил его и затем снова соединился со всеми серверами без проблемы.