Obecnie mam przesłany na serwer stary klucz SSH. Problem polega na tym, że zgubiłem ~/.ssh
katalog (z oryginałem id_rsa
i id_rsa.pub
plikami).
W związku z tym chcę usunąć stary klucz SSH bezpośrednio na serwerze i przesłać nowy.
Bez powodzenia wypróbowałem następujące polecenie:
$> ssh-add -D
Czy istnieje sposób na całkowite usunięcie klucza SSH?
ssh-add -d
?Odpowiedzi:
Należy pamiętać, że istnieje co najmniej dwa raport o błędzie do
ssh-add -d/-D
nie usuwania klawiszy:ssh-add -D
nie usuwa klucza SSH zgnome-keyring-daemon
pamięci ”ssh-add -D
usuwanie wszystkich tożsamości nie działa. Dlaczego wszystkie tożsamości są dodawane automatycznie? ”Dokładny problem to:
A dokładniej, o problemie:
Ten błąd jest nadal potwierdzony w Ubuntu 14.04.4, jeszcze dwa dni temu (21 sierpnia 2014)
Możliwe obejście:
Inne obejście:
Ten komentarz faktycznie sugeruje:
Ryan Lue dodaje w komentarzach kolejny interesujący przypadek narożny :
Ma to miejsce wówczas, gdy został dodany jak tu .
keygrip
źródło
ssh-agent
issh-add
wybranej odpowiedzi? Oryginalny plakat mówił, że chceremove the old SSH key directly on the server and upload a new one
. Wygląda na to, że chce edytować~/.ssh/authorized_keys
na zdalnym hoście.git clone
polegało na użyciu pierwszego klucza w łańcuchu zamiast wersji w pliku konfiguracyjnym na pudełku Ubuntu. Zły klucz był automatycznie zasysany i przekazywany do skrzynki Debiana.id_rsa
iid_rsa.pub
pliki całkowicie, a klucz był nadal wyświetlane. Okazuje się, że gpg-agent buforował je w~/.gnupg/sshcontrol
pliku; Musiałem je stamtąd ręcznie usunąć.Jeśli próbujesz wykonać operację związaną z ssh i pojawia się następujący błąd:
Możesz usunąć brakujący klucz ssh z agenta ssh w następujący sposób:
źródło
Chyba że źle zrozumiałem, zgubiłeś
.ssh
katalog zawierający klucz prywatny na komputerze lokalnym, więc chcesz usunąć klucz publiczny, który był na serwerze i który pozwalał na logowanie za pomocą klucza. W takim przypadku zostanie on zapisany w.ssh/authorized_keys
pliku w Twoim katalogu domowym na serwerze. Możesz po prostu edytować ten plik za pomocą edytora tekstu i usunąć odpowiednią linię, jeśli możesz ją zidentyfikować (nawet łatwiej, jeśli jest to jedyny wpis!). Mam nadzieję, że ten klucz nie był Twoją jedyną metodą dostępu do serwera i masz inny sposób logowania się i edycji pliku. Możesz ręcznie dodać nowy klucz publiczny doauthorised_keys
pliku lub użyć gossh-copy-id
. Tak czy inaczej, musisz skonfigurować uwierzytelnianie hasłem dla swojego konta na serwerze lub inną tożsamość lub metodę dostępu, aby dostać się doauthorized_keys
pliku na serwerze.ssh-add
dodaje tożsamości do twojego agenta ssh, który obsługuje zarządzanie twoimi tożsamościami lokalnie, a „połączenie z agentem jest przekazywane przez zdalne logowanie SSH, dzięki czemu użytkownik może w bezpieczny sposób korzystać z uprawnień nadanych przez tożsamości w dowolnym miejscu w sieci”. (strona podręcznika), więc nie sądzę, że tego chcesz w tym przypadku. O ile wiem, nie ma sposobu, aby uzyskać klucz publiczny na serwerze bez dostępu do tego serwera przez login ssh.źródło
Otworzyłem aplikację "Hasła i klucze" w moim Unity i usunąłem niechciane klucze z Secure Keys -> OpenSSH keys. Zostały one również automatycznie usunięte z ssh-agent -l .
źródło
~/.ssh
Mogę potwierdzić, że ten błąd jest nadal obecny w Ubuntu 19.04. Obejście sugerowane przez @VonC działało idealnie, podsumowując dla mojej wersji:
Następnie spróbowałem
ssh-add -D
ponownie, a po ponownym uruchomieniussh-add -l
powiedział mi, że agent nie ma tożsamości. Potwierdziłem, że nadal mamssh-agent
uruchomionego demonaps aux | grep agent
. Więc dodałem klucz, którego najczęściej używam z GitHub (ssh-add ~/.ssh/id_ecdsa
) i wszystko jest w porządku!Teraz mogę wykonywać normalne operacje z moim najczęściej używanym repozytorium, a jeśli czasami potrzebuję dostępu do innego repozytorium, które używa klucza RSA, po prostu przeznaczam dla niego jeden terminal z
export GIT_SSH_COMMAND="ssh -i /home/me/.ssh/id_rsa.pub"
. Rozwiązany! Podziękowania dla @VonC za wskazanie błędu i rozwiązania.źródło
Sprawdź klucz .ssh, czy nie ma go w systemie
Jeśli nie, to
Przeszłość w terminalu
Usuń istniejący klucz .ssh
Tworzyć nowe
Utwórz nowy klucz .ssh -> ssh-keygen -t rsa -b 4096 -C "[email protected]"
Klucz publiczny został zapisany w „/Users/administrator/.ssh/id_ed25519.pub”.
źródło
Rozwiązaniem dla mnie (OpenSuse Leap 42.3, KDE) była zmiana nazwy folderu,
~/.gnupg
który najwyraźniej zawierał buforowane klucze i profile. Po wylogowaniu / zalogowaniu się z KDE ssh-add / agent jest ponownie uruchomiony i folder jest tworzony od podstaw, ale stare klucze zniknęły.Nie odniosłem sukcesu przy innych podejściach.
źródło