Невозможно добавить сгенерированный ключ ssh к агенту ssh «Не удалось открыть соединение с вашим агентом аутентификации»

Вам не нужен флаг -(выравнивание по левому краю -), по умолчанию выравнивание по правому краю -выравнивание:

awk '{printf "%5s %s\n",$1,$2}' a.txt
0
27.11.2020, 17:38
2 ответа

Я удалил все ключи и попытался пройти всю процедуру заново. Это сработало, когда я создал ключи без sudo, как в :

.
user@home-machine ~ $ ssh-keygen -t ed25519 -C "my@email"

Спасибо @Panki за подсказку. Не помню, почему я использовал sudoдля создания ключей.

1
18.03.2021, 22:46
user@home-machine ~ $ eval "$(ssh-agent -s)"
Agent pid 2864

Здесь вы начинаете ssh-agentкак user. Это инициализирует переменную среды SSH_AUTH_SOCK, которая используется другими инструментами SSH для поиска сокета Unix для агента.

user@home-machine ~ $ sudo ssh-add root/.ssh/id_ed25519
[sudo] password for user:
Could not open a connection to your authentication agent.

И здесь вы вызываете ssh-addкак root. Если вы явно не настроили sudoдля передачи переменной среды SSH_AUTH_SOCKчерез переход sudo, по умолчанию она не будет передавать ее в среду root.

Без переменной окружения команда ssh-addне сможет найти сокет ssh-agent, так как он расположен в подкаталоге -со случайным -именем (, обычно/tmp/ssh-<random_alphabet_soup>/agent.<number>). Сокет и каталог, в котором он находится, также доступны только для оригинального user, но обычно это не проблема для root.

Если вы хотите, чтобы агент работал через переход sudoконкретно для этого пользователя, вам нужно добавить что-то подобное в ваш файл /etc/sudoers:

Defaults:user env_keep+=SSH_AUTH_SOCK

(Конечно, замените userреальным именем пользователя.)

Если вы хотите, чтобы это работало для всех пользователей при переходе на root с помощью sudo, вы можете сделать это следующим образом:

Defaults>root env_keep+=SSH_AUTH_SOCK
2
18.03.2021, 22:46

Теги

Похожие вопросы