Git ciągle pyta mnie o hasło klucza ssh

Utworzyłem klucze zgodnie z Instrukcją w tutorialu github, zarejestrowałem je w github i próbowałem użyć ssh-agent jawnie - jednak git nadal pyta mnie o hasło za każdym razem, gdy próbuję wykonać pull lub push.

Co może być przyczyną?

 597
Author: Étienne, 2012-04-05

14 answers

Po uruchomieniu agenta SSH z:

eval $(ssh-agent)

Zrób:

  1. Aby dodać do niego swój klucz prywatny:

     ssh-add
    

    To poprosi Cię o hasło tylko raz, a następnie powinieneś mieć możliwość push, pod warunkiem, że wgrałeś klucz publiczny do Github.

  2. Aby dodać i zapisać klucz na stałe w systemie macOS:

     ssh-add -K  
    

    Spowoduje to zachowanie go po zamknięciu i ponownym otwarciu, przechowując go w pęku kluczy użytkownika.

  3. Aby dodać i zapisać swoje klucz trwale na Ubuntu (lub odpowiednik):

      ssh-add ~/.ssh/id_rsa
    
 1142
Author: Roberto Bonvallet,
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
2021-01-26 17:19:41

To się dzieje po ponownym uruchomieniu od aktualizacji z OS X El Capitan (10.11) do macOS Sierra (10.12). Rozwiązanie ssh-add działało tymczasowo, ale nie utrzymywało się przez kolejne ponowne uruchomienie.

Stałym rozwiązaniem było edytowanie (lub tworzenie) ~/.ssh/config i włączenie opcji UseKeychain.

Host *
    UseKeychain yes

Powiązane: macOS ciągle pyta moje hasło ssh odkąd zaktualizowałem Sierra

 258
Author: Kyle Clegg,
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-03-20 10:18:25

Jeśli próbowałeś (aś) ssh-add i nadal pojawi się monit o podanie hasła, spróbuj użyć ssh-add -K. Spowoduje to dodanie hasła do pęku kluczy.

Aktualizacja: jeśli używasz systemu MacOS Sierra, prawdopodobnie musisz wykonać kolejny krok, ponieważ powyższe czynności mogą już nie działać. Dodaj do swojego ~/.ssh/config:

Host *
  UseKeychain yes
 64
Author: Darryl Young,
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-03-11 08:29:13

Spróbowałbym:

  1. Start GitBash
  2. Edytuj swój plik ~/.bashrc
  3. Dodaj następujące wiersze do pliku

SSH_ENV=$HOME/.ssh/environment

# start the ssh-agent
function start_agent {
    echo "Initializing new SSH agent..."
    # spawn ssh-agent
    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
    echo succeeded
    chmod 600 ${SSH_ENV}
    . ${SSH_ENV} > /dev/null
    /usr/bin/ssh-add
}

if [ -f "${SSH_ENV}" ]; then
     . ${SSH_ENV} > /dev/null
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
        start_agent;
    }
else
    start_agent;
fi
  1. Zapisz i zamknij plik
  2. Zamknij GitBash
  3. Reopen GitBash
  4. Wpisz hasło
 59
Author: Roland,
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-10-31 08:09:49

U mnie w Windows działało (sklonowałem kod z repo 1st):

eval $(ssh-agent)
ssh-add 
git pull 

W którym czasie poprosił mnie po raz ostatni o hasło

Kredyty: rozwiązanie zostało zaczerpnięte z https://unix.stackexchange.com/questions/12195/how-to-avoid-being-asked-passphrase-each-time-i-push-to-bitbucket

 39
Author: Arthur,
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-07-12 05:05:30

Spróbuj dodać to do swojego ~/.ssh / config :

Host *
   AddKeysToAgent yes
   UseKeychain yes
   IdentityFile ~/.ssh/id_rsa

... zakładając, że twój klucz prywatny ma nazwę id_rsa

 28
Author: IgorGanapolsky,
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
2020-05-05 22:18:05

Miałem podobny problem, ale inne odpowiedzi nie rozwiązały mojego problemu. Pomyślałem, że wrzucę to na wszelki wypadek, gdyby ktoś inny miał taki Pokręcony układ jak ja.

Okazało się, że miałem kilka kluczy i Git używał najpierw niewłaściwego. Poprosi mnie o hasło, a ja je wprowadzę, a następnie Git użyje innego klucza, który będzie działał (że nie trzeba wprowadzać hasła).

Właśnie usunąłem klucz, którego używał, aby poprosić mnie o hasło i teraz działa!

 7
Author: 11101101b,
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
2013-03-06 02:25:26

Jeśli powyższe rozwiązania nie działają dla mnie, jedną rzeczą do sprawdzenia jest to, że faktycznie masz również klucz publiczny(zazwyczaj id_rsa.pub). To niezwykłe, że tego nie robię, ale to była dla mnie przyczyna.

Aby utworzyć klucz publiczny z klucza prywatnego:

ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
 6
Author: Stephen Harris,
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-04-27 09:51:33

Wygląda na to, że możesz mieć problemy z samym SSH-agentem. Spróbowałbym rozwiązać ten problem.

1) Czy zrobiłeś ssh-add aby dodać swój klucz do SSH?

2) Czy zamykasz okno terminala między użyciami, ponieważ jeśli zamkniesz okno, będziesz musiał ponownie wprowadzić hasło po ponownym jego otwarciu.

 5
Author: Jeff Welling,
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
2012-04-05 16:49:10

Próbuję różnych rozwiązań, ale nic nie pomaga. Ale to kroki ( moje środowisko GitBash SSH zawsze pyta o moje hasło, co mogę zrobić?) od Bitbucket.com szwy działają dobrze:

Pomysł jest:

  1. Tworzysz ~/.bashrc Plik

  2. Dodaj następujący skrypt:

    SSH_ENV=$HOME/.ssh/environment
    
    # start the ssh-agent
        function start_agent {
        echo "Initializing new SSH agent..."
        # spawn ssh-agent
        /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
        echo succeeded
        chmod 600 "${SSH_ENV}"
        . "${SSH_ENV}" > /dev/null
        /usr/bin/ssh-add
    }
    
    if [ -f "${SSH_ENV}" ]; then
         . "${SSH_ENV}" > /dev/null
         ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
            start_agent;
        }
    else
        start_agent;
    fi
    
  3. Re-run Bash

 2
Author: alx lark,
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-08-15 12:25:17

Jeśli nie używasz GitBash, a pracujesz w systemie Windows-musisz uruchomić SSH-agenta używając tego polecenia

start-ssh-agent.cmd

Jeśli twój agent ssh nie jest skonfigurowany, możesz otworzyć PowerShell jako administrator i ustawić go w trybie ręcznym

Get-Service -Name ssh-agent | Set-Service -StartupType Manual
 2
Author: Chris Karpyszyn,
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
2020-09-01 02:25:35

Innym możliwym rozwiązaniem, które nie jest wymienione powyżej, jest sprawdzenie pilota za pomocą następującego polecenia:

git remote -v

Jeśli pilot nie zaczyna się od git, ale zaczyna się od https, możesz zmienić go na git, postępując zgodnie z poniższym przykładem.

git remote -v // origin is https://github.com/user/myrepo.git
git remote set-url origin [email protected]:user/myrepo.git
git remote -v // check if remote is changed
 1
Author: Darkov,
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
2020-01-02 07:33:58

Dla użytkowników Windows lub Linux możliwe rozwiązanie jest opisane w dokumentach GitHub, które dla Twojej wygody zamieszczam poniżej.

Możesz uruchomić ssh-agent automatycznie po otwarciu bash lub Git shell. Skopiuj następujące linie i wklej je do pliku ~/.profile lub ~/.bashrc:

env=~/.ssh/agent.env

agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }

agent_start () {
    (umask 077; ssh-agent >| "$env")
    . "$env" >| /dev/null ; }

agent_load_env

# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
    agent_start
    ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
    ssh-add
fi

unset env

Jeśli twój klucz prywatny nie jest przechowywany w jednej z domyślnych lokalizacji (np. ~/.ssh/id_rsa), musisz poinformować swojego agenta uwierzytelniania SSH, gdzie go znaleźć. Aby dodać swój klucz do ssh-agent, typ ssh-add ~/path/to/my_key.

Teraz, kiedy po raz pierwszy uruchomisz Git Bash, zostaniesz poproszony o hasło. proces ssh-agent będzie działał, dopóki się nie wylogujesz, nie wyłączysz komputera lub nie zabijesz procesu.

 1
Author: Roberto Amoroso,
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
2020-11-12 18:22:35

Na mac, jeśli twój klucz ssh wymaga hasła za każdym razem i chcesz go pominąć, możesz spróbować poniżej, działa dobrze dla mnie

  1. eval "$(ssh-agent-s) "
  2. ssh-add-K.ssh / id_rsa
  3. add this default SSH configuration works for me

Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh / id_rsa

 0
Author: neurobot,
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
2020-11-02 13:51:52