Ustawiam hasło podczas tworzenia nowego klucza SSH na moim laptopie. Ale, jak sobie teraz uświadamiam, jest to dość bolesne, gdy próbujesz zatwierdzić ( Git i SVN ) w odległej lokalizacji przez SSH wiele razy w ciągu godziny.
Jednym ze sposobów, które mogę wymyślić, jest usunięcie moich kluczy SSH i utworzenie nowych. Czy istnieje sposób na usunięcie hasła przy jednoczesnym zachowaniu tych samych kluczy?
Odpowiedzi:
Krótka odpowiedź:
Spowoduje to wyświetlenie monitu o podanie lokalizacji pliku klucza, starego hasła i nowego hasła (które można pozostawić puste, aby nie było hasła).
Jeśli chcesz zrobić to wszystko w jednym wierszu bez monitów:
Ważne: Uwaga : podczas wykonywania poleceń będą one zazwyczaj rejestrowane w
~/.bash_history
pliku (lub podobnym) w postaci zwykłego tekstu, w tym wszystkich dostarczonych argumentów (w tym przypadku haseł). Dlatego zaleca się skorzystanie z pierwszej opcji, chyba że masz konkretny powód, aby zrobić inaczej.Zauważ jednak, że nadal możesz używać
-f keyfile
bez konieczności określania-P
ani-N
, i że plik klucza jest domyślnie ustawiony~/.ssh/id_rsa
, więc w wielu przypadkach nie jest nawet potrzebny.Możesz rozważyć użycie ssh-agent, który może buforować hasło przez pewien czas. Najnowsze wersje gpg-agent obsługują również protokół używany przez ssh-agent.
źródło
ssh-keygen -p
w terminalu. Następnie wyświetli monit o podanie pliku klucza (domyślnie dla mnie prawidłowy plik~/.ssh/id_rsa
), starego hasła (wprowadź to, co już masz) i nowego hasła (nic nie wprowadzaj).ssh-keygen -p -P oldpassphrase -N "" -f ~/.ssh/id_rsa
~/.bash_history
. Lepiej wpisać:$ cd ~/.ssh && ssh-keygen -f id_dsa -p
~/.bash_hstory
Ie. użyj `ssh-keygen -p -P oldpassphrase -N" "-f ~ / .ssh / id_rsa` i wszystko jest w porządku (chyba że masz tam inny keylogger). Możesz również pozbyć się tego zapisu z historii .$ ssh-keygen -p
pracował dla mnieOtwarty git bash. Wklejony:
$ ssh-keygen -p
Naciśnij Enter, aby uzyskać domyślną lokalizację.
Wpisz stare hasło
Wprowadź nowe hasło - BLANK
Potwierdź nowe hasło - PUSTE
BOOM ból zniknął po wprowadzeniu hasła do git push.
Dzięki!
źródło
$ ssh-keygen -p
i klucz nie jest w powiedzenia domyślnej lokalizacji (/Users/yourname/.ssh/id_rsa), można odpowiedzieć poprzez umieszczenie/Users/yourname/.ssh/yourkey
na monitMożesz dodać następujące elementy do swojego .bash_profile (lub odpowiednika), który uruchamia ssh-agent przy logowaniu.
W niektórych dystrybucjach Linuksa (Ubuntu, Debian) możesz użyć:
Spowoduje to skopiowanie wygenerowanego identyfikatora do zdalnego komputera i dodanie go do zdalnego pęku kluczy.
Możesz przeczytać więcej tutaj i tutaj .
źródło
Aby zmienić lub usunąć hasło, często uważam, że najłatwiej jest przekazać tylko flagi
p
if
, a następnie pozwolić, aby system poprosił mnie o podanie hasła:ssh-keygen -p -f <name-of-private-key>
Na przykład:
ssh-keygen -p -f id_rsa
Wprowadź puste hasło, jeśli chcesz usunąć hasło.
Przykładowy przebieg usuwania lub zmiany hasła wygląda mniej więcej tak:
Podczas dodawania hasła do klucza, który nie ma hasła, przebieg wygląda mniej więcej tak:
źródło
W systemie Windows można użyć PuttyGen, aby załadować plik klucza prywatnego, usunąć hasło, a następnie zastąpić istniejący plik klucza prywatnego.
źródło
Na komputerze Mac możesz przechowywać hasło do prywatnego klucza SSH w pęku kluczy, dzięki czemu korzystanie z niego jest przezroczyste. Jeśli jesteś zalogowany, jest on dostępny, gdy się wylogujesz, użytkownik root nie będzie mógł z niego korzystać. Usunięcie hasła jest złym pomysłem, ponieważ każdy, kto ma plik, może go użyć.
Dodaj to do
~/.ssh/config
źródło