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.
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.
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ść.
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.
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": {]}
-
ssh-add -K ~/.ssh/id_rsa
Uwaga: zmień ścieżkę do miejsca, w którym znajduje się klucz id_rsa. -
ssh-add -A
-
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!
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.
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
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)
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)
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
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.
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ż.
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.
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:
-
Dowiedz się, czy masz go zainstalowanego.
git credential-osxkeychain
Jeśli nie jest zainstalowany, zostaniesz poproszony o pobranie go jako część narzędzi wiersza poleceń Xcode.
-
Jeśli jest zainstalowany, powiedz Gitowi, aby użył
osxkeychain helper
używając globalnegocredential.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.
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 .
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.
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
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
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
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
.
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:
- zmienna środowiskowa HOME musi być ustawiona na Twoim profilu użytkownika (np. C:\Users\Laptop)
- 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!)
-
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
-
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
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
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]
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