Команда ssh-add не добавляет мою личность в ssh-agent

Я только что установил Ubuntu 13.10, и я собирался добавить свою личность в мой ssh-agent, поэтому я открыл Терминал и сделал это

bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ ssh-add
bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ 

какие-нибудь идеи?

20
задан 22 October 2013 в 03:45

2 ответа

Из man ssh-add:

ssh-add добавляет идентификаторы закрытого ключа для агента аутентификации ssh-agent (1). При запуске без аргументов он добавляет файлы ~ / .ssh / id_rsa, ~ / .ssh / id_dsa, ~ / .ssh / id_ecdsa и ~ / .ssh / identity. [...]

Файлы идентификации не должен читаться никем, кроме пользователя. Обратите внимание, что ssh-add игнорирует файлы идентификации, если они доступны другим.

Итак, из-за ошибки The agent has no identities. у вас, вероятно, нет этих файлов или, возможно, эти файлы доступны другим. Вы можете проверить их, используя следующую команду:

ls -l ~/.ssh

Кроме того, после запуска команды ssh-add, запустите echo $?, чтобы увидеть состояние ошибки предыдущей команды. Если статус выхода вернул 0, команда была выполнена успешно. Если состояние выхода вернуло ненулевое значение, команда не выполнилась.

См. man ssh-add для получения дополнительной информации.

0
ответ дан 22 October 2013 в 03:45

В дополнение к вышеупомянутым соображениям я обнаружил, что если вы используете альтернативную оболочку, вам может потребоваться настроить ее для загрузки ssh-agent. Например, в Zsh нужно добавить ssh-agent к plugins в .zshrc.

Этот метод отлично работает в Ubuntu 17.10 с последней версией Zsh

Другие обнаружили, что с клавишами id_ed25519 rsa работал без плагина. После добавления ssh-agent к ~/.zshrc перезапустите оболочку с помощью exec "$SHELL" и выполните: ssh-add ~/.ssh/id_ed25519

Enter passphrase for ~/.ssh/id_ed25519: 
Identity added: ~/.ssh/id_ed25519 (user@host)
0
ответ дан 22 October 2013 в 03:45

Другие вопросы по тегам:

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