Jak usunąć hasło dla klucza SSH bez konieczności tworzenia nowego klucza?

Ustawiłem hasło podczas tworzenia nowego klucza SSH na moim laptopie. Ale, jak teraz zdaję sobie sprawę, jest to dość bolesne, gdy próbujesz zaangażować (Git i SVN ) do zdalnej lokalizacji przez SSH wiele razy w ciągu godziny.

Jeden sposób mogę myśleć jest, usunąć moje klucze SSH i utworzyć nowy. Czy istnieje sposób na usunięcie hasła, zachowując jednocześnie te same klucze?

Author: btbytes, 2008-09-22

3 answers

Krótka odpowiedź:

$ ssh-keygen -p

Spowoduje to wyświetlenie monitu o wpisanie lokalizacji pliku kluczowego, starego hasła i nowego hasła(które można pozostawić puste, aby nie mieć hasła).

Jeśli chcesz zrobić to wszystko w jednej linii bez monitów zrób:

$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

Ważne: uważaj, że podczas wykonywania poleceń będą one zazwyczaj logowane w Twoim pliku ~/.bash_history (lub podobnym) w postaci zwykłego tekstu zawierającego wszystkie podane argumenty (np. hasła w tym przypadku). On dlatego zaleca się skorzystanie z pierwszej opcji, chyba że masz konkretny powód, aby zrobić inaczej.

Możesz rozważyć użycie SSH-agenta, który może buforować hasło przez pewien czas. Najnowsze wersje gpg-agent obsługują również protokół używany przez ssh-agent.

 1311
Author: Torsten Marek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-26 18:16:36

Możesz dodać do swojego .bash_profile (lub odpowiednik), który uruchamia ssh-agent po zalogowaniu.

if [ -f ~/.agent.env ] ; then
    . ~/.agent.env > /dev/null
    if ! kill -0 $SSH_AGENT_PID > /dev/null 2>&1; then
        echo "Stale agent file found. Spawning new agent… "
        eval `ssh-agent | tee ~/.agent.env`
        ssh-add
    fi 
else
    echo "Starting ssh-agent"
    eval `ssh-agent | tee ~/.agent.env`
    ssh-add
fi

Na niektórych dystrybucjach Linuksa (Ubuntu, Debian) możesz użyć:

ssh-copy-id -i ~/.ssh/id_dsa.pub username@host

Spowoduje skopiowanie wygenerowanego identyfikatora na zdalną maszynę i dodanie go do zdalnego pęku kluczy.

Możesz przeczytać więcej tutaj i tutaj.

 28
Author: mlambie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-22 16:09:34

$ ssh-keygen -p worked for me

Otworzył Git bash. Wklejony: $ ssh-keygen -p

Naciśnij enter dla domyślnej lokalizacji.

Wpisz stare hasło

Wprowadź nowe hasło-puste

Potwierdź nowe hasło-puste

Bum ból wchodzenia w hasło do git push zniknął.

Dzięki!
 5
Author: Karan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-05 15:47:13