Mám Makefile s nějakým ssh
a rsync
příkazy. Všechny jsou provedeny bez chyb, ale zobrazí následující chybovou zprávu:
Error reading response length from authentication socket.
Nemám rád záhadné chybové zprávy – víte, co to znamená a jak to opravit?
Přijatá odpověď:
Většina výsledků Google pro chybovou zprávu ukazuje, že to problém řeší:
eval $(ssh-agent)
ssh-add
Příčin této chyby může být několik a budete muset analyzovat každý případ, abyste viděli, co se děje.
Při spuštění ssh-agent nastaví dvě proměnné prostředí:SSH_AUTH_SOCK
a SSH_AGENT_PID
. Pokud přesměrujete svého agenta z jiného hostitele, druhý hostitel nebude nastaven.
SSH_AUTH_SOCK
je „autentizační soket“ zmíněný v chybové zprávě.
Pokud máte místního zástupce (SSH_AGENT_PID
je nastaveno) je možné, že proces zemřel nebo není schopen zapisovat do soketu.
Pokud máte přesměrovaného agenta, je pravděpodobné, že vzdálený konec uzavře soket nebo místní proces není schopen číst ze soketu pro předávání.
Existují samozřejmě i další možné příčiny, ale toto jsou ty, které mě právě teď napadají nebo jsem se s nimi setkal sám.
Budete muset diagnostikovat každý případ, strace
a lsof
s tím může pomoci.
Pak byste zase mohli založit nového agenta, jak navrhovali všichni ostatní, a přejít k něčemu zábavnějšímu 😉