GPG aracısı SSH anahtarımı anahtarlıktan çıkarmıyor


14

Gerçekten rahatsız edici bir sorunum var. Ben alamıyorum gpg-agentonun Anahtarlıktan benim SSH anahtarı kaldırmak için ve hatta birçok yeniden başladıktan sonra orada devam eder.

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

Kimliğini kaldırmasını söylesem bile:

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

Sonra bakarım

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

ve hala orada.

Bu nerede önbellekleniyor? Bir nedenden dolayı diske yazılıyor gibi görünüyor, bu da bir SSH ajanının yapmak için korkunç bir şey. Başlamak için aşağıdakileri çalıştırıyorum gpg-agent:

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

Her şey iyi çalışıyor, ancak bu dosyayı bir yerde önbelleğe alıyor ve silmem gerekiyor.

Yanıtlar:


15

GPG'nin çoğunda olduğu gibi, ssh kimlik bilgileri .gnupgdizinin içinde , özellikle de aşağıdaki ~/.gnupg/sshcontrolgibi görünecek şekilde önbelleğe alınır :

# 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

Yorumda belirtildiği gibi, tuşları silerek kaldırabilir veya a ile devre dışı bırakabilirsiniz !. Test etmedim, ancak bir anahtarı "devre dışı bırakmanın", dosyayı düzenlemeden açıkça etkinleştiremeyeceğiniz veya ekleyemeyeceğiniz anlamına geldiğini hayal ediyorum.


1
Bunlar sadece anahtar parmak izleridir. ~ / .Gnupg / private-keys-v1.d /
dlitz'de

Ancak artık ssh aracısı tarafından görülemezler.
larsks

14

Evet ssh -d. İşte farklı bir komut kullanarak bir geçici çözüm.

gpg-connect-agentAracıya bağlanmak için komut satırından komutu çalıştırın . Ardından, oradaki istemlerden ssh tuşlarını listelemek için bu komutu girin

KEYINFO --ssh-list --ssh-fpr

Şuna benzer bir şey görmelisiniz:

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

Şimdi, aracıdan kaldırmak için:

DELETE_KEY 3365433C34421CC53B52C9A82169FD2328CF610B

Diyecek ki:

OK

Şimdi, BYE komutuyla çıkın:

BYE OK kapatma bağlantısı

Şimdi ile doğrulayın ssh-add -lve bunun gerçekte gittiğini göreceksiniz.


DELETE_KEY <id>Dosyanın nereden geldiğiyle ilgili daha fazla bilgi vererek yazdıktan sonra bir komut aldım … Hangi anahtarın hangisi olduğunu
Sam Mason

1

Bunun için bir komut dosyası istiyorsanız:

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

Burada uzman değilim, bu yüzden kullandığım basit bir senaryo veriyorum. Hiçbir şey fantezi. Derin bir şey yok.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.