Niedawno zauważyłem, że w moim agencie ssh są trzy klucze, których nie mogę usunąć. ssh-add -l
pokazał trzy klucze; Pobiegłem ssh-add -D
i powiedziano „Wszystkie tożsamości usunięte”; ale natychmiast ssh-add -l
pokazał te same trzy klucze.
Jeśli się wyloguję, a następnie wrócę, klucze nadal tam są. Jeśli zrestartuję komputer, klucze nadal tam są. Jeśli usunę katalog kluczy w /tmp
, Nie mogę się połączyć ssh-agent
już więcej, ale po wylogowaniu się i powrocie klucze wracają. Są niezniszczalni.
O ile wiem, klucze są moje, a nie kogokolwiek innego. Dzięki nim mogę uzyskać dostęp do moich zwykłych lokalnych usług. Ale kiedy ponownie dodam jeden z kluczy za pomocą ssh-add
, podając ścieżkę do pliku klucza prywatnego, nowy klucz ma inny wygląd na wyjściu ssh-add -l
:
2048 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f /home/jruser/.ssh/jruser-keyname-20110418 (RSA)
vs. oryginał:
2048 00:01:02:03:04:05:06:07:08:09:0a:0b:0c:0d:0e:0f jruser 04/18/2011 keyname (RSA)
Czy jest jakiś sposób na rozsądne rozliczenie tego zachowania? Sądzę, że są naprawdę dwa pytania:
W jaki sposób udało się zachować klucze nawet po ponownym uruchomieniu? Moja podstawowa znajomość
ssh
sugeruje, że klucze należy zawsze dodawać ręcznie.Dlaczego
ssh-agent -D
okłamuj mnie o usuwaniu tożsamości?
Odpowiedzi:
Wygląda na to, że może to być błąd. Mam podobne zachowanie w Ubuntu 10.10. Wyszukiwarka google znalazła raport o błędzie dla Debiana: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=472477
Aby usunąć dodatkowe klawisze, które pokazałem, właśnie przeniosłem je z katalogu ~ / .ssh.
źródło
Twoje klucze są przechowywane jako pliki w ukrytym katalogu: /home/jruser/.ssh/, w ten sposób utrzymują się po ponownym uruchomieniu. Domyślam się, że ssh-add -D usuwa je z pamięci, ale po ponownym uruchomieniu są one czytane z katalogu .ssh, więc masz je ponownie.
źródło
ssh-add -D
NIE usuwa ich z pamięci. Nie ma żadnego efektu.