На Mac откройте Терминал и выполните ssh-add -l. Это отобразит отпечатки и комментарии для идентификаторов, доступных через SSH-агент, подключенный к этой сессии Терминала; эта команда не выводит данные закрытых ключей. Если у агента нет идентификаторов, команда сообщит об этом. Рассматривайте это как проверку текущего подключения к агенту, а не как полную инвентаризацию ключей, хранящихся на вашем Mac.

Вывод списка идентификаторов в текущем агенте

В Терминале введите:

ssh-add -l

Параметр -l выводит отпечатки идентификаторов, представленных агентом. По умолчанию в OpenSSH используется формат отпечатков SHA-256. Каждый результат обычно включает размер ключа, отпечаток, комментарий к ключу и алгоритм; комментарий может помочь опознать ключ, но это текст, заданный пользователем, и он не является доказательством того, какая учетная запись или сервер его примет. Справочное руководство OpenSSH ssh-add(1)

Эта команда только запрашивает список. Она не добавляет и не удаляет идентификаторы. Избегайте использования ssh-add -D и ssh-add -d во время проверки: эти параметры удаляют идентификаторы. Также избегайте ssh-add -L, если ваша цель — раскрыть как можно меньше информации. Этот параметр выводит параметры открытого ключа для идентификаторов в агенте. Открытый ключ не является закрытым ключом, но он содержит больше идентифицирующей информации, чем отпечаток. Справочное руководство OpenSSH ssh-add(1)

Что означает пустой список или ошибка подключения

Если в выводе указано, что у агента нет идентификаторов, значит, у агента, к которому обратился данный Терминал, нет данных для отчета. Это не означает, что у вас нет SSH-ключей на диске, на аппаратном ключе аутентификации или в другом месте. Также это не доказывает, что другое приложение или окно Терминала использует того же самого агента. OpenSSH использует переменную окружения SSH_AUTH_SOCK для поиска агента, поэтому разные сессии могут быть подключены по-разному. Справочное руководство OpenSSH ssh-add(1)

Если же вместо этого вы видите ошибку вида «Could not open a connection to your authentication agent», значит, текущая командная оболочка не смогла опросить сокет агента. Этот вывод не позволяет определить, есть ли идентификаторы в другой сессии. Повторно выполните команду ssh-add -l в том окне Терминала или оболочке, которую вы используете для SSH; не запускайте новый агент только для проверки, так как это может предоставить данной оболочке другой, пустой агент. Если команда по-прежнему завершается сбоем, проверьте, настроено ли окружение для передачи SSH_AUTH_SOCK, с помощью printf '%s\n' "$SSH_AUTH_SOCK". Это покажет путь к сокету, а не ключ, но само по себе не проверяет, пригоден ли сокет для использования.

Отличие агента от Связки ключей macOS

SSH-идентификатор, загруженный в агент, и пароль, сохраненный в Связке ключей (Keychain), — это разные вещи. Apple описывает UseKeychain как параметр конфигурации SSH для сохранения пароля ключа, а AddKeysToAgent — как параметр, который загружает ключ в агент, когда SSH его использует. Таким образом, наличие пароля в Связке ключей само по себе не означает, что идентификатор в данный момент отображается в ssh-add -l; идентификатор может быть добавлен в агент позже, например, во время SSH-соединения. Техническая заметка Apple TN2449

Если вам необходимо проверить элементы Связки ключей, приложение «Связка ключей» (Keychain Access) может показать информацию о ключах и сертификатах, хранящихся в выбранной связке. Это отдельная проверка, не связанная со списком активного агента, и по ней не следует судить о том, какие идентификаторы данный Терминал может предложить в текущий момент. Служба поддержки Apple: Просмотр информации, хранящейся в связке ключей на Mac

Что может дать эта проверка

Используйте ssh-add -l, когда вам нужен снимок идентификаторов, доступных агенту для этой сессии Терминала, с минимальным раскрытием информации. Сравните отпечаток с доверенной записью, если вам нужно распознать конкретный ключ. Вывод команды не показывает содержимое закрытого ключа, не определяет все ключи на компьютере, не подтверждает, что удаленный сервер авторизует ключ, и не гарантирует, что последующая команда SSH использует указанный идентификатор; конфигурация SSH и контекст подключения также влияют на аутентификацию.

Источники