Klucz SSH - wciąż pytanie o hasło i hasło

W pewnym sensie "znosiłem" Github zawsze pytając o moją nazwę użytkownika i hasło podczas klonowania repozytorium. Chcę ominąć ten krok, ponieważ jest to irytacja w moim przepływie pracy.

Próbowałem skonfigurować klucz SSH (co udało mi się zrobić) za pomocą tego przewodnika. https://help.github.com/articles/generating-ssh-keys i udało mi się.

Mój problem polega na tym, że wciąż jestem pytany o moje hasło github i hasło podczas klonowania repozytorium (za pomocą SSH). Rozumiem, że po skonfigurowaniu tego klucza SSH Nie będę już musiał tego robić.

Nie wiem, o co zapytać, więc przedstawię swój cel.

chcę mieć możliwość klonowania repozytoriów bez konieczności umieszczania przez cały czas informacji na Githubie.

Czego mi brakuje w moim kluczu SSH? Jeśli ktoś może dostarczyć jakieś wskazówki lub zasoby, byłbym wdzięczny, ponieważ zawsze czułem się trochę zagubiony, jeśli chodzi o uwierzytelnianie SSH w Githubie.

Z mojej wiedzy wynika, że jest to komenda, która sprawdza czy wszystko działa poprawnie, oto wyjście z mojej konsoli:

~ $ ssh -T [email protected]
Saving password to keychain failed
Enter passphrase for key '/Users/MYNAME/.ssh/id_rsa':
Hi MYNAME! You've successfully authenticated, but GitHub does not provide shell access.

Kiedy wprowadzam hasło, czy powinno się to najpierw zawieść? Potem, kiedy wprowadzam hasło, ono mija.

Author: nbro, 2014-01-13

21 answers

Jeśli pracujesz z adresami URL HTTPs, zawsze zapyta o Twoją nazwę użytkownika / hasło.

Jeśli poprawnie używasz {[1] } podczas klonowania / ustawiania pilotów. Następnie upewnij się, że masz agenta ssh, który zapamięta Twoje hasło. W ten sposób hasło zostanie wprowadzone tylko raz przez sesję terminala.

Jeśli nadal jest to zbyt irytujące, po prostu ustaw klucz ssh bez hasła.

 110
Author: Simon Boudrias,
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-01-13 15:43:17

Dodaj tożsamość bez breloka

Mogą się zdarzyć sytuacje, w których nie chcesz, aby hasło było przechowywane w pęku kluczy, ale nie chcesz go wprowadzać w kółko.

Możesz to zrobić tak:

ssh-add ~/.ssh/id_rsa 

To poprosi Cię o hasło, wprowadź je i nie poprosi ponownie, dopóki nie uruchomisz ponownie.

Dodaj Tożsamość Za Pomocą Pęku Kluczy

Jak zauważył @dennis w komentarzach, aby utrzymać hasło przez restart, przechowując je w Twój brelok, możesz użyć opcji -K podczas dodawania tożsamości w następujący sposób:

ssh-add -K ~/.ssh/id_rsa

Po raz kolejny poprosi Cię o hasło, wprowadź je i tym razem już nigdy nie poprosi o tę tożsamość.

 512
Author: Komu,
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-12-02 21:01:34

W systemie Mac OSX możesz dodać swój klucz prywatny do pęku kluczy za pomocą polecenia:

ssh-add -K /path/to/private_key

Jeśli twój klucz prywatny jest przechowywany w~/.ssh i nazywa się id_rsa:

ssh-add -K ~/.ssh/id_rsa

Zostanie wyświetlony monit o podanie hasła, które zostanie zapisane w pęku kluczy.

 185
Author: Groot,
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
2016-12-14 15:12:32

Próbowałem wszystkich odpowiedzi tutaj i żadna z tych odpowiedzi nie zadziałała! Moje hasło nie będzie się utrzymywać między sesjami / ponownym uruchomieniem komputera Mac.

Dowiedziałem się z lektury tego OpenRadar i tej dyskusji na Twitterze, że Apple celowo zmienił zachowanie dla ssh-agent w macOS 10.12 Sierra, aby nie ładował już automatycznie poprzednich kluczy SSH. Aby zachować to samo zachowanie co El Cap zrobiłem "po": {]}

  1. ssh-add -K ~/.ssh/id_rsa
    Uwaga: zmień ścieżkę do miejsca, w którym znajduje się klucz id_rsa.
  2. ssh-add -A
  3. Utwórz (lub edytuj, jeśli istnieje) następujący plik ~/.ssh/config:

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

A teraz moje hasło jest zapamiętywane między restartami mojego Maca!

 165
Author: ChrisJF,
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-08 18:00:56

Po prostu uruchom następujące polecenie:

ssh-add -K

Nigdy nie poprosi Cię o ponowne wprowadzenie hasła.

 27
Author: user3640130,
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-01-11 14:08:09

Możesz usunąć hasło dla klucza

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

Or you can run

$ ssh-keygen -p

Pojawia się monit o plik kluczowy. Domyślnie ~/.ssh/id_rsa więc naciśnij enter

Zostaniesz poproszony o wpisanie aktualnego hasła.

Wtedy pojawi się monit o nowe hasło, naciśnij enter

 26
Author: sudo bangbang,
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
2016-01-14 22:11:41

Upewnij się, że używasz ssh również dla swojego repozytorium

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin [email protected]:eMahtab/jenkins-cje-2017.git (fetch) origin [email protected]:eMahtab/jenkins-cje-2017.git (push)

Tutaj wpisz opis obrazka

Nie używaj https, jeśli twój pilot używa https, będzie nadal pytał o hasło, nawet jeśli dodałeś klucz publiczny do Github i dodałeś klucz prywatny do ssh-agent. Poniżej zawsze poproś o hasło

mahtab@mahtab-Lenovo-G50-70:~/my-projects/jenkins-cje-2017$ git remote -v origin https://github.com/eMahtab/jenkins-cje-2017.git (fetch) origin https://github.com/eMahtab/jenkins-cje-2017.git (push)

 14
Author: Mahtab Alam,
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-29 11:33:30

Spróbuj ssh-agent Jak to jest tam wyjaśnione: https://help.github.com/articles/working-with-ssh-key-passphrases

 8
Author: ДМИТРИЙ МАЛИКОВ,
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-01-14 19:20:50

Jeśli używasz windows, To mi to pomogło:

eval `ssh-agent -s`
ssh-add ~/.ssh/*_rsa

Poprosi o hasło w drugim poleceniu i to wszystko.

 6
Author: Marina,
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-04-20 13:10:49

Dla Mac OSX Sierra odkryłem, że poprawki sugerowane w problemie github dla Open Radar naprawiły mój problem. Wygląda na to, że Sierra zmieniła domyślne zachowanie (zacząłem mieć ten problem po aktualizacji).

Ten uważam za szczególnie przydatny: https://github.com/lionheart/openradar-mirror/issues/15361#issuecomment-249059061

ssh-add -A 

To spowodowało, że moja tożsamość została dodana do agenta, po uciekłem

ssh-add -K {/path/to/key}

Podsumowując, w OSX.12:

ssh-add -K {/path/to/key}
ssh-add -A 

Powinno wynikać:

Identity added: {/path/to/file} ({/path/to/file})

Edytuj: Zauważyłem, że następnym razem zrobiłem pełny restart (aka agent zatrzymał się i uruchomił ponownie) to już nie działa. Bardziej kompletnym rozwiązaniem jest to, co @ChrisJF wspomniał powyżej: tworzenie pliku ~/.ssh/config. Oto moje wyjście:

$ cat ~/.ssh/config
Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa

Możesz dodać tyle wpisów IdentityFile ile potrzebujesz, ale jest to domyślna konfiguracja. To jest" trendy " odpowiedź na link openradar powyżej, bankomat, jak również.

 4
Author: zedd45,
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-01-09 19:43:54

Już ustawiłem hasło, ale z jakiegoś powodu już go nie rozpoznało. Więc dodałem plik tożsamości do breloka ponownie używając ssh-add -K i przestał pytać o moje hasło.

 3
Author: André Herculano,
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
2015-01-12 14:20:15

Problem wygląda na to, że klonujesz z HTTPS, a nie SSH. Próbowałem wszystkich innych rozwiązań tutaj, ale nadal doświadczał problemów. To mi pomogło.

Używając osxkeychain helper w ten sposób:

  1. Dowiedz się, czy masz go zainstalowanego.

    git credential-osxkeychain

  2. Jeśli nie jest zainstalowany, zostaniesz poproszony o pobranie go jako część narzędzi wiersza poleceń Xcode.

  3. Jeśli jest zainstalowany, powiedz Gitowi, aby użył osxkeychain helper używając globalnego credential.helper config:

    git config --global credential.helper osxkeychain

Następnym razem, gdy sklonujesz adres URL HTTPS, zostaniesz poproszony o podanie nazwy użytkownika/hasła i przyznanie dostępu do pęku kluczy OSX. Po zrobieniu tego po raz pierwszy, powinien być zapisany w pęku kluczy i nie będzie musiał wpisywać go ponownie.

 2
Author: Bryan Perez,
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-12-15 00:16:19

Musiałem wykonać:

eval `ssh-agent -s`
ssh-add

Uwaga: będziesz musiał to zrobić ponownie po każdym ponownym uruchomieniu.

Rozwiązanie znalezione tutaj .

 2
Author: Black,
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-09-10 07:34:37

Chciałbym dodać odpowiedź dla tych, którzy mogą jeszcze potrzebować wejść do Hasło, ponieważ mają ustawione / Align = "left" / Może to być spowodowane przez wiele kluczy i Pliku tożsamości, będących kluczami dla git lub serwera.

Po wygenerowaniu klucza i skopiowaniu go na Serwer:

ssh-keygen
ssh-copy-id -i ~/.ssh/12gpu_server.pub [email protected]

Okazało się, że nie działa.

Potem poszedłem sprawdzić plik ~/.ssh/config, zobaczyłem to na "bottom": {]}

Host *
IdentitiesOnly yes

Następnie dodaję to powyżej:

Host 12gpu
HostName 192.168.20.160
User lerner
IdentityFile ~/.ssh/12gpu_server

Mogę się zalogować wpisując ssh 12gpu.

Następnie możesz dodać wiele klawiszy ssh używając ulubionych nazw, a Ty wystarczy dodać ustawienia, takie jak powyższe cztery linie do konfiguracji plik.

Host to nazwa, którą chcesz wprowadzić podczas łączenia się z serwerem później; Nazwa hosta jest ip serwera lub domeny jak github.com; User to logowana nazwa użytkownika na serwerze, jak nazwa użytkownika lub git dla github lub gitlab; a IdentityFile jest plikiem, w którym przechowujesz na wygenerowany klucz.

 1
Author: lerner,
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-01-24 09:27:01

Ta odpowiedź zadziałała dla mnie w Ubuntu.

Zobacz ten dokument GitHub, aby przekonwertować adres URL zdalnego z https na ssh. https://help.github.com/articles/changing-a-remote-s-url/
aby sprawdzić, czy adres URL pilota to ssh lub https, użyj git remote -v.

Aby przełączyć się z https na ssh:
git remote set-url origin [email protected]:USERNAME/REPOSITORY.git

 1
Author: Chris Kevin,
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-18 12:55:20

Ogólnie rzecz biorąc, oto kroki umożliwiające nawiązanie zdalnego połączenia z serwerem za pomocą ssh bez hasła:

  • Utwórz parę klucza prywatnego i publicznego RSA

    $ ssh-keygen -t rsa -b 4096 -C "your comments"
    
  • Skopiuj klucz publiczny i zaloguj się na zdalny serwer

  • Dodaj swój klucz publiczny do.ssh / authorized_keys

  • Jeśli masz kilka kluczy ssh w komputerze, możesz dodać swój klucz za pomocą ssh-add

    $ ssh-add /path/to/private/key

  • Następnie spróbuj ssh do swojego Serwer

    $ ssh username@your_ip_address

Źródło: http://diary-of-programmer.blogspot.com/2018/08/tips-how-to-ssh-to-your-digitalocean.html
 1
Author: Anang Satria,
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-08-20 14:24:47

Jeśli używasz ssh url dla git, po wyświetleniu monitu o hasło dla ssh podaj nazwę użytkownika jako " git " i hasło jako hasło logowania Twojego systemu

 0
Author: Vinayak Deshpande,
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-12-16 08:03:31

Użyj ssh ZDALNEGO ADRESU URL dostarczonego przez Github, a nie https.

 0
Author: Lost Koder,
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-04 14:41:26

Jeśli używasz Windows i GIT bez narzędzi innych firm, a twój klucz jest nie zabezpieczony hasłem użyj tego:

  1. zmienna środowiskowa HOME musi być ustawiona na Twoim profilu użytkownika (np. C:\Users\Laptop)
  2. idź do C:\Users\Laptop\.SSH \ folder i edytuj plik "config" (lub utwórz plik!) Przykład: C:\Users\Laptop.ssh\config (uwaga: nie ma na końcu!)
  3. Dodaj swój host git-server do pliku "config" Tak:

    #Example host entry
    Host myhostname.com
        HostName myhostname.com
        User git
        IdentityFile c:/users/laptop/.ssh/id_rsa.pub
        PasswordAuthentication no
        Port 422
    
  4. Zapisz plik i Sklonuj repozytorium w następujący sposób:

    Git clone ssh://myhostname.com/git-server / repos / picalc.git

Możesz użyć dodatkowych parametrów konfiguracyjnych dla wpisu" config " file host. Można je znaleźć w lokalnym folderze instalacyjnym git, np. " C:\Program Files\Git \ etc \ ssh\ssh_config ". Fragment:

# Host *
#   ForwardAgent no
#   ForwardX11 no
#   RhostsRSAAuthentication no
#   RSAAuthentication yes
#   PasswordAuthentication yes
#   HostbasedAuthentication no
#   GSSAPIAuthentication no
#   GSSAPIDelegateCredentials no
#   BatchMode no
#   CheckHostIP yes
#   AddressFamily any
#   ConnectTimeout 0
#   StrictHostKeyChecking ask
#   IdentityFile ~/.ssh/identity
#   IdentityFile ~/.ssh/id_rsa
#   IdentityFile ~/.ssh/id_dsa
#   IdentityFile ~/.ssh/id_ecdsa
#   IdentityFile ~/.ssh/id_ed25519
#   Port 22
#   Protocol 2
#   Cipher 3des
#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
#   MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
#   EscapeChar ~
#   Tunnel no
#   TunnelDevice any:any
#   PermitLocalCommand no
#   VisualHostKey no
#   ProxyCommand ssh -q -W %h:%p gateway.example.com
#   RekeyLimit 1G 1h
 0
Author: Fabian Stern,
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-03-09 12:51:51

Dla mnie ten sam problem i rozwiązaniem było:

Zobacz ten dokument github, aby przekonwertować adres URL zdalnego z https na ssh. Aby sprawdzić, czy adres URL pilota to ssh lub https, użyj git remote-v. Aby przełączyć się z https na ssh: git remote set-URL origin [email protected]:USERNAME/REPOSITORY.git @jeeYem

 0
Author: Bruno Leite,
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-05-17 15:07:32

Mobaxterme miał dla niego interfejs UI

setting > configuration > SSH > SSH Agent > [check] Use internal SSH agent "moboAgent" > add [your id_rsa and restart mobaxterme to set changes]

 0
Author: Amir Heshmati,
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-04 11:21:13