Посмотрите на следующую сессию оболочки:

niklas@llw ~ % ssh-agent && ssh-add
SSH_AUTH_SOCK=/tmp/ssh-ZzWYJAmK8809/agent.8809; export SSH_AUTH_SOCK;
SSH_AGENT_PID=8810; export SSH_AGENT_PID;
echo Agent pid 8810;
Enter passphrase for /home/niklas/.ssh/id_rsa: 
Identity added: /home/niklas/.ssh/id_rsa (/home/niklas/.ssh/id_rsa)

niklas@llw ~ % killall ssh-agent

niklas@llw ~ % ssh-agent && ssh-add
SSH_AUTH_SOCK=/tmp/ssh-TNMkMvgP8880/agent.8880; export SSH_AUTH_SOCK;
SSH_AGENT_PID=8881; export SSH_AGENT_PID;
echo Agent pid 8881;
Could not open a connection to your authentication agent.

Почему я могу запустить ssh-agent && ssh-add только один раз?

1 ответ1

1

Сначала я предлагаю вам проверить еще раз и убедиться, что агент еще не запущен. Я подозреваю, что у вас уже был агент. Затем вы начали секунду, без надлежащего обновления среды. Ваш ssh-add общался с оригинальным агентом. Затем вы убили все агенты и попытались запустить новый без надлежащего обновления среды, следующий ssh-add не смог связаться с исходным агентом, которого вы убили.

Далее вам нужно понять, что при запуске агента SSH он выдает скрипт, который необходимо использовать для обновления вашей среды. Вот как клиентские программы знают, как связаться с агентом. Один из способов сделать это с помощью команды, как показано ниже.

. <(ssh-agent)
ssh-add

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .