Агент GPG не видаляє мій ключ SSH з брелока


14

У мене справді хвилююча проблема. Я не можу gpg-agentвилучити свій ключ SSH з його брелока, і він навіть зберігається там після багатьох перезавантажень.

$ ssh-add -D
SSH_AGENT_FAILURE
Failed to remove all identities.

Навіть коли я кажу про видалення особи:

$ ssh-add -d /path/to/private/key
Identity removed: /path/to/private/key

Я тоді дивлюся

$ ssh-add -l
4096 1b:cb:52:a6:e5:13:e6:78:14:12:92:8f:34:8f:92:88 /path/to/private/key

і це все ще є.

Де це кешування? Здається, з якихось причин пишуть на диск, що для агента SSH страшно. Для запуску я виконую наступне gpg-agent:

gpg-agent --enable-ssh-support --daemon 

Все інше працює добре, але він кешує цей файл десь і мені потрібно його видалити.

Відповіді:


15

Як і у більшості речей GPG, ssh облікові дані кешуються всередині .gnupgкаталогу, зокрема в ~/.gnupg/sshcontrol, який буде виглядати приблизно так:

# List of allowed ssh keys.  Only keys present in this file are used
# in the SSH protocol.  The ssh-add tool may add new entries to this
# file to enable them; you may also add them manually.  Comment
# lines, like this one, as well as empty lines are ignored.  Lines do
# have a certain length limit but this is not serious limitation as
# the format of the entries is fixed and checked by gpg-agent. A
# non-comment line starts with optional white spaces, followed by the
# keygrip of the key given as 40 hex digits, optionally followed by a
# the caching TTL in seconds and another optional field for arbitrary
# flags.   Prepend the keygrip with an '!' mark to disable it.

# Key added on: 2013-09-19 22:15:50
# Fingerprint:  8b:56:b0:3f:c8...
681BF1EFF... 0
# Key added on: 2013-09-20 17:14:36
# Fingerprint:  4b:cb:7e:b0:d7...
F7BCEBD1C... 0

Як йдеться в коментарі, ви можете видалити ключі, видаливши їх, або відключити їх !. Я не тестував, але думаю, що "відключення" ключа означає, що ви не можете його чітко включити або додати, не редагуючи файл.


1
Це лише ключові відбитки пальців. Є ще приватні ключі, що зберігаються в ~ / .gnupg / private-keys-v1.d /
dlitz

Але їх більше не видно агенту ssh.
larsks

14

Так, здається, ssh -dзламаний агент gpg. Ось вирішення за допомогою іншої команди.

Виконайте gpg-connect-agentкоманду з командного рядка для підключення до агента. Потім введіть цю команду, щоб відобразити список ssh

KEYINFO --ssh-list --ssh-fpr

Ви повинні побачити щось на кшталт:

S KEYINFO 3365433C34421CC53B52C9A82169FD2328CF610B D - - - P df:a2:36:8d:ad:88:b3:cc:00:96:10:d4:c9:2c:e0:df - S
OK

Тепер, щоб видалити з агента:

DELETE_KEY 3365433C34421CC53B52C9A82169FD2328CF610B

Він скаже:

OK

Тепер киньте команду BYE:

BYE ОК

Тепер уточнюйте, ssh-add -lі ви побачите, що це пішло реально.


Я отримав підказку після введення DELETE_KEY <id>відомостей про те, звідки беруться файли… було корисно розібратися, який ключ був
Сем Мейсон,

1

Якщо ви хочете сценарій для цього:

keys=$(gpg-connect-agent 'keyinfo --list' /bye | awk '{print $3}' | head -n -1)
for key in $keys; do gpg-connect-agent "delete_key $key --force" /bye; done

Я тут не експерт, тому я просто даю простий сценарій, який я використовую. Нічого фантазійного. Нічого глибокого.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.