Ich habe ein Makefile mit etwas ssh
und rsync
Befehle. Alle werden fehlerfrei ausgeführt, geben aber folgende Fehlermeldung:
Error reading response length from authentication socket.
Ich mag keine rätselhaften Fehlermeldungen – wissen Sie, was das bedeutet und wie man sie behebt?
Akzeptierte Antwort:
Die meisten Google-Ergebnisse für die Fehlermeldung zeigen, dass das Problem dadurch behoben wird:
eval $(ssh-agent)
ssh-add
Die Gründe für diesen Fehler können mehrere sein und Sie müssten jeden Fall analysieren, um zu sehen, was los ist.
Wenn der ssh-agent startet, richtet er zwei Umgebungsvariablen ein:SSH_AUTH_SOCK
und SSH_AGENT_PID
. Wenn Sie Ihren Agenten von einem anderen Host weiterleiten, wird dieser nicht gesetzt.
SSH_AUTH_SOCK
ist der in der Fehlermeldung erwähnte „Authentifizierungs-Socket“.
Wenn Sie einen lokalen Agenten (SSH_AGENT_PID
gesetzt ist), ist es möglich, dass der Prozess abgebrochen ist oder nicht in den Socket schreiben kann.
Wenn Sie einen weitergeleiteten Agenten haben, ist es möglich, dass das Remote-Ende den Socket geschlossen hat oder der lokale Prozess nicht in der Lage ist, vom Weiterleitungs-Socket zu lesen.
Es gibt natürlich auch andere mögliche Ursachen, aber das sind die, die mir gerade einfallen oder denen ich selbst begegnet bin.
Sie müssen jeden Fall diagnostizieren, strace
und lsof
kann dabei helfen.
Andererseits könnten Sie einfach einen neuen Agenten starten, wie von allen anderen vorgeschlagen, und zu etwas Lustigerem übergehen 😉