У меня есть Makefile с некоторыми командами ssh
и rsync
. Все они выполняются без ошибок, но выдают следующее сообщение об ошибке:
Error reading response length from authentication socket.
Мне не нравятся загадочные сообщения об ошибках. Знаете ли вы, что они означают и как их исправить?
решение1
Большинство результатов поиска Google по данному сообщению об ошибке показывают, что это решает проблему:
eval $(ssh-agent)
ssh-add
Причин возникновения этой ошибки может быть несколько, и вам придется проанализировать каждый случай, чтобы понять, что происходит.
При запуске ssh-agent устанавливаются две переменные среды: SSH_AUTH_SOCK
и SSH_AGENT_PID
. Если вы перенаправляете своего агента с другого хоста, последняя не будет установлена.
SSH_AUTH_SOCK
— это «сокет аутентификации», упомянутый в сообщении об ошибке.
Если у вас установлен локальный агент ( SSH_AGENT_PID
), возможно, процесс завершился или не может выполнить запись в сокет.
Если у вас есть пересылаемый агент, то, скорее всего, удаленный конец закрыл сокет или локальный процесс не может выполнить чтение из пересылаемого сокета.
Конечно, есть и другие возможные причины, но это те, которые я могу вспомнить прямо сейчас или с которыми столкнулся сам.
Вам придется диагностировать каждый случай, strace
и lsof
вы можете в этом помочь.
С другой стороны, вы можете просто создать нового агента, как предлагают все остальные, и перейти к чему-то более интересному ;)