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

494

Podczas „klonowania” repozytorium zawsze nieco „znosiłem” Githuba, zawsze pytając o moją nazwę użytkownika i hasło. Chcę pominąć ten krok, ponieważ jest to irytujące w moim przepływie pracy.

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

Mój problem polega na tym, że podczas klonowania repozytorium (przy użyciu SSH) nadal jestem proszony o hasło i hasło github. Zrozumiałem, że po skonfigurowaniu tego klucza SSH nie będę już musiał tego robić.

Nie jestem pewien, o co zapytać, więc po prostu określę swój cel.

Chcę mieć możliwość klonowania repozytoriów bez konieczności ciągłego wpisywania moich danych Github .

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

Z mojej wiedzy jest to polecenie, które sprawdza, czy wszystko działa poprawnie, oto dane wyjściowe 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 to nie powinno być pierwsze? Potem, kiedy wprowadzam moje hasło, mija.

Witaj świecie
źródło
1
W jakim systemie operacyjnym jesteś? Nowoczesny pulpit systemu Linux zaproponowałby przechowywanie hasła w menedżerze kluczy. To samo w Mac OS X. W systemie Windows możesz używać pageant, który jest częścią putty. We wszystkich tych celach cel jest taki sam: hasło należy wprowadzić tylko raz po uruchomieniu komputera, agenci menedżera kluczy przekażą je ssh w kolejnych zastosowaniach, aż do ponownego uruchomienia.
janos
2
Jestem trochę spóźniony na przyjęcie tutaj, ale na małej karcie / przycisku klonowania w github znajduje się link z napisem „Użyj SSH”. Chcesz to zrobić. Zmienia link do klonowania na coś takiego jak „git @ github: nazwa użytkownika / projekt.git”. Jeśli dodałeś klucz SSH do github i masz go uruchomionego lokalnie na ssh-agent, powinieneś być w stanie pchać bez wpisywania nazwy użytkownika lub hasła.
Logan Kitchen

Odpowiedzi:

201

Jeśli pracujesz z HTTPsadresami URL, zawsze poprosi o nazwę użytkownika / hasło.

Jeśli używasz poprawnie SSHpodczas klonowania / ustawiania pilotów. Następnie upewnij się, że masz agenta ssh do zapamiętania hasła. W ten sposób hasło zostanie wprowadzone tylko raz podczas sesji terminalowej.

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

Simon Boudrias
źródło
2
Dzięki za odpowiedzi. Zawsze korzystałem z HTTP. Próbuję uzyskać uwierzytelnianie SSH i pomyślałem, że to skonfigurowałem. Czy ssh-agent jest czymś poza git, który muszę zainstalować? Dzięki
HelloWorld,
1
@ R11G nie możesz, w przeciwnym razie hasła nie byłyby bezpieczne ... Po prostu zregeneruj nowe.
Simon Boudrias
50
Chcę tylko zauważyć, że hasła są używane do szyfrowania twojego klucza prywatnego, więc jeśli nie użyjesz hasła, twój klucz prywatny będzie niezaszyfrowany na twoim komputerze. To jak pozostawienie hasła w pliku tekstowym na komputerze.
2
Zabawne, moje repozytorium HTTPS nigdy nie prosi o hasło, a moje repozytorium SSH zawsze tak robią.
Adam
33
Zobacz ten dokument github, aby przekonwertować adres URL pilota z https na ssh. Aby sprawdzić, czy adres URL pilota to ssh czy https, użyj git remote -v. Aby przełączyć się z https na ssh:git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
Manavalan Gajapathy
824

Dodaj tożsamość bez pęku kluczy

Może się zdarzyć, że nie chcesz, aby hasło było przechowywane w pęku kluczy, ale nie chcesz, aby hasło było wprowadzane w kółko.

Możesz to zrobić w następujący sposób:

ssh-add ~/.ssh/id_rsa 

Zostaniesz poproszony o podanie hasła, wprowadź je i nie poprosi ponownie, dopóki nie uruchomisz ponownie.

Dodaj tożsamość za pomocą pęku kluczy

Jak wskazuje @dennis w komentarzach, aby utrwalić hasło przez ponowne uruchomienie poprzez zapisanie go w pęku kluczy, możesz użyć -Kopcji ( -kdla Ubuntu) podczas dodawania tożsamości w następujący sposób:

ssh-add -K ~/.ssh/id_rsa

Ponownie poprosi cię o hasło, wprowadź je i tym razem nigdy więcej nie poprosi o tę tożsamość.

Komu
źródło
178
Pamiętaj, że to nie utrwali tożsamości przy ponownym uruchomieniu. Możesz użyć -Kopcji, aby zapisać hasło w pęku kluczy podczas jego dodawania, np.ssh-add -K ~/.ssh/id_rsa
Dennis
29
małe litery -kdla mnie ... (Linux Mint / Ubuntu 14.04 base), ale tak! w końcu posortowałem to ...
Louis Maddox,
8
po prostu uruchamiając polecenie „ssh-add” i wprowadzając hasło jeden raz, wiersz poleceń nie wyświetli monitu o podanie hasła.
AVINASH SHRIMALI
14
Nie potrzebujesz żadnych argumentów; tylko uruchomiony ssh-addautomatycznie doda ~/.ssh/id_rsa(między innymi plikami). I nie ma powodu, aby wysyłać dane wyjściowe /dev/null; o wiele lepiej zobaczyć raport z tego, co zrobił.
Ted Hopp,
6
Każdy pomysł, dlaczego pojawia się komunikat „Nie można otworzyć połączenia z agentem uwierzytelniającym”.
dokaspar
251

W Mac OSX możesz dodać swój klucz prywatny do pęku kluczy, używając 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

Zostaniesz poproszony o podanie hasła, które będzie przechowywane w pęku kluczy.

Edycja - obsługa ponownego uruchomienia

Aby nie musieć wpisywać hasła nawet po restarcie, dodaj do pliku konfiguracyjnego ssh (zwykle znajduje się w ~ / .ssh / config)

Host *
  UseKeychain yes
  AddKeysToAgent yes
  IdentityFile ~/.ssh/id_rsa
Groot
źródło
7
W moim przypadku nadal pojawia się monit o podanie hasła po restarcie (macOS Sierrra 10.12.2). Wszelkie pomysły, jak to rozwiązać?
inigo333
9
Nieważne, właśnie znalazłem problem. Jest to błąd (funkcja?) Z systemu Mac OS X 10.12, w którym agent ssh nie ładuje automatycznie haseł do pęku kluczy podczas uruchamiania. github.com/lionheart/openradar-mirror/issues/15361
inigo333
2
@ inigo333 ciekawe. Właśnie zaktualizowałem i zauważyłem to sam!
Groot,
1
@Groot, BTW, dodanie „Host * UseKeychain yes” do „~ / .ssh / config”, jak sugerowano w innych odpowiedziach, rozwiązuje problem.
inigo333
1
To powinna być zaakceptowana odpowiedź. Specjalnie plik konfiguracyjny w~/.ssh
Xavi
186

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

Z lektury tego OpenRadar i dyskusji na Twitterze dowiedziałem się, że Apple celowo zmieniło zachowanie ssh-agent w macOS 10.12 Sierra, aby nie ładować automatycznie poprzednich kluczy SSH. Aby zachować to samo zachowanie, co El Cap, wykonałem następujące czynności:

  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 ~/.ssh/configplik:

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

A teraz moje hasło jest zapamiętywane między restartami komputera Mac!

ChrisJF
źródło
2
Może to być przydatne do dodania na stronach dokumentacji github lub osx . Najtrudniej było mi zrozumieć, dlaczego mój Mac z systemem 10.11 i mój inny z systemem 10.12 działają inaczej.
Grr
5
Stało się mi po aktualizacji OSX, dzięki (myślę, że ssh-add -Anie jest potrzebny, jeśli masz tylko jeden klucz na ~/.ssh/id_rsa)
Dorian
1
To niezwykle przydatna odpowiedź. Dzięki, stworzyłeś mój dzień.
Jan Nash
2
Od października 2017 r. Ta odpowiedź jest dokładnie tym, czego szukasz, jeśli używasz systemu macOS 10.12 lub nowszego.
brogrammer
3
I to jest teraz w dokumentacji github: help.github.com/articles/…
Todd Price
35

Możesz usunąć hasło dla klucza

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

lub możesz biegać

$ ssh-keygen -p

pojawia się monit o podanie pliku klucza. Domyślnie ~/.ssh/id_rsanaciśnij klawisz Enter

Zostaniesz poproszony o podanie aktualnego hasła, wpisz je.

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

Sudo Bangbang
źródło
Powinno to być wyższe niż wiele niemal identycznych odpowiedzi na dodanie hasła do pęku kluczy. Musiałem przekazać mój klucz publiczny administratorowi i zamieściłem hasło, które za każdym razem zaczynało być denerwujące. Jest to czyste rozwiązanie, gdy nie masz większą kontrolę nad swoim komputerze ( -K, -k, -Anie dla mnie).
gwg
1
Jest to jedyna rzecz, która działała dla mnie po ponownym uruchomieniu, wszystkie polecenia ssh-add -K, -k itp. Nic mi nie zrobiły.
Amalgovinus
28

Po prostu uruchom następujące polecenie:

ssh-add -K

Nigdy nie poprosi o ponowne wprowadzenie hasła.

użytkownik3640130
źródło
3
Działa to świetnie, ale byłem trochę zaniepokojony uruchamianiem losowych poleceń. Jeśli jednak sprawdzisz dokumenty, ssh-addpo prostu „doda tożsamość klucza prywatnego do agenta uwierzytelniania”, a -Kopcja po prostu sprawi, że będzie to „Podczas dodawania tożsamości każde hasło zostanie również zapisane w pęku kluczy użytkownika”.
machineghost
8
W rzeczywistości naprawił to tylko do momentu ponownego uruchomienia :(
machineghost
5
w powłoce bash dla systemu Windows flaga „-k” musi być pisana małymi literami. Tylko do wiadomości
Fergus
27

Upewnij się, że używasz również ssh 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)

wprowadź opis zdjęcia tutaj

Nie używaj https, jeśli twój pilot używa https, będzie pytał o hasło, nawet jeśli dodałeś klucz publiczny do Github i klucz prywatny do ssh-agent. Poniżej zawsze będzie prośba 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)

Mahtab Alam
źródło
Tak, rozróżnienie dwóch typów zdalnych adresów URL było dla mnie pomocne. Pomogło mi to w zakresie git pulli git push. Zmieniłem swój adres URL z typu HTTPS na typ SSH i zadziałało - git pullprzestałem pytać o hasło.
Michael R
1
Przełączanie można wykonać za pomocą tego polecenia:git remote set-url origin [email protected]:USERNAME/REPOSITORY.git
guido,
17

Musiałem wykonać:

eval `ssh-agent -s`
ssh-add

Uwaga : Musisz to zrobić ponownie po każdym ponownym uruchomieniu. Jeśli chcesz tego uniknąć, wprowadź go do pliku „ .bashrc ”, który jest w plikuC:\Users\<<USERNAME>>\.bashrc Windows. Prawdopodobnie jest ukryty, więc upewnij się, że widzisz ukryte pliki.

Rozwiązanie znalezione tutaj .

czarny
źródło
15

Jeśli używasz systemu Windows, działało to dla mnie:

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

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

przystań
źródło
1
Po wylogowaniu i ponownym zalogowaniu należy za każdym razem ponownie wprowadzić hasło.
trainoasis,
11

Musisz użyć agenta ssh.
TL; DR : Otwórz terminal i spróbuj

ssh-add

przed pchaniem. Po wyświetleniu monitu wprowadź hasło.

Sprawdź oryginalną odpowiedź StackExchange tutaj

Junaid
źródło
6

Niedawno zaktualizowałem system do macOS Mojave i zainstalowałem niektóre narzędzia za pośrednictwem homebrew, co zdawało się zamieniać wersję Apple ssh-addna inną. Moja domyślna wersja ssh-add nie miała -Kopcji. Doprowadziło to do następującego błędu:

# ssh-add: illegal option -- K

Możesz sprawdzić, którą wersję ssh-addmasz, uruchamiając which ssh-add.

(Mój był przechowywany w /usr/local/bin/ssh-add)

Aby to naprawić, musiałem wskazać klucz do wersji Apple :

/usr/bin/ssh-add -K ~/.ssh/id_rsa

Git / GitHub działał doskonale później. Aby uzyskać więcej informacji, zobacz: Błąd: ssh-add: niedozwolona opcja - K

aboutaaron
źródło
Miałem ten sam problem na moim iMacu z High Sierra 10.13.6 - to zadziałało dla mnie. Dzięki!
emccracken
Mój działał dobrze i losowo znów zaczął prosić o hasła - być może po ostatniej aktualizacji. To naprawiło to! Dzięki
mc01
5

W Mac OSX Sierra odkryłem, że poprawki sugerowane w numerze github dla Open Radar rozwiązał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 

Spowodowało to dodanie mojej tożsamości do agenta po uruchomieniu

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

Podsumowując, w OSX.12:

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

powinno skutkować:

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

EDYCJA: Zauważyłem, że następnym razem, gdy dokonałem pełnego restartu (czyli agent zatrzymał się i uruchomił ponownie), to już nie działało. Bardziej kompletnym rozwiązaniem jest to, o czym wspominał @ChrisJF: tworzenie ~/.ssh/configpliku. Oto mój wynik:

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

Możesz dodać tyle IdentityFilewpisów, ile potrzebujesz, ale jest to ustawienie domyślne. Jest to „trendowa” odpowiedź na powyższym łączu Openradar, ATM, również.

zedd45
źródło
Edytowany rozwiązał mój problem. MacOS Mojave 10.14.3
Jose
4

Pracował w LinuxMint / Ubuntu

Wykonaj następujące kroki

Krok 1:

Idź do pliku => /.ssh/config

Zapisz poniższe wiersze w pliku

Host bitbucket.org
    HostName bitbucket.org
    User git
    IdentityFile /home/apple/myssh-privatekey
    AddKeysToAgent yes

Nie zapomnij dodać tej linii AddKeysToAgent tak

Krok 2:

Otwórz terminal i dodaj zestaw kluczy do ssh-add

$ ssh-add -k /home/apple/myssh-privatekey

podaj hasło.

Dhinesh Tak
źródło
3

Ustawiłem już hasło, ale z jakiegoś powodu już go nie rozpozna. Właśnie dlatego ponownie dodałem plik tożsamości do mojego pęku kluczy ssh-add -Ki przestał on pytać o moje hasło.

André Herculano
źródło
to ładuje tylko klucze, a nie certyfikaty
numediaweb
3

Oto, co zadziałało dla mnie:

git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"
Daniel Sp
źródło
2

Problem wydaje się być spowodowany klonowaniem z HTTPS, a nie SSH. Wypróbowałem wszystkie inne rozwiązania tutaj, ale nadal miałem problemy. Zrobiło to dla mnie.

Używając osxkeychain helperpodobnego:

  1. Dowiedz się, czy go masz.

    git credential-osxkeychain

  2. Jeśli nie zostanie zainstalowany, pojawi się monit o pobranie go w ramach narzędzi wiersza polecenia Xcode.

  3. Jeśli jest zainstalowany, powiedz Gitowi, aby korzystał osxkeychain helperz globalnej credential.helperkonfiguracji:

    git config --global credential.helper osxkeychain

Następnym razem, gdy sklonujesz adres URL HTTPS, pojawi się monit o podanie nazwy użytkownika / hasła i udzielenie dostępu do pęku kluczy OSX. Po wykonaniu tego po raz pierwszy należy go zapisać w pęku kluczy i nie trzeba go wpisywać ponownie.

Bryan Perez
źródło
2

Ta odpowiedź jest przeznaczona przede wszystkim dla użytkowników systemu Windows i jest równie istotna, jeśli masz problemy z klonowaniem za pomocą tfs, github lub gitlab w dowolnym innym systemie operacyjnym.

Domyślnym trybem uwierzytelniania podczas korzystania z SSH jest klucz prywatny. Ilekroć z jakiegoś powodu to się nie powiedzie, agent ssh wraca do uwierzytelniania opartego na nazwie użytkownika i haśle.

Istnieje kilka przyczyn niepowodzenia domyślnego uwierzytelnienia opartego na kluczu. Oto najczęstsze przypadki:

a) Agent ssh nie może znaleźć domyślnego pliku klucza prywatnego, który jest id_rsa , a żadna inna ścieżka klucza nie jest wyraźnie określona.

b) Klucz publiczny przechowywany na serwerze jest niepoprawny.

c) Ścieżka, którą próbujesz sklonować, jest nieprawidłowa.

W każdym razie, aby rozwiązać problem, wykonaj najpierw polecenie git clone z pełnym rejestrowaniem za pomocą polecenia:

GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone ssh://pathToYourRepo

Możesz przejść przez każdy krok w dzienniku, aby uzyskać intuicję na temat problemu.


Rozwiązywanie problemów w przypadku (a)

  • Upewnij się, że masz domyślną nazwę klucza id_rsa w katalogu .ssh. Możliwe, że podałeś inną nazwę klucza podczas generowania klucza za pomocą polecenia ssh-keygen lub może nie ma żadnego klucza).
  • Jeśli chcesz określić inny klucz do uwierzytelnienia, użyj następującego polecenia:

    ssh-agent bash -c 'ssh-add ~/.ssh/anotherKey; git clone ssh://pathToYourRepo'
    

Rozwiązywanie problemów w przypadku (b)

  • Upewnij się, że nie ma dodatkowych białych znaków podczas przechowywania klucza publicznego na serwerze.

Rozwiązywanie problemów w przypadku (c)

  • Upewnij się, że nie próbujesz sklonować wersji https ścieżki repozytorium.
chaosifier
źródło
1

Jeśli używasz ssh url dla git, po wyświetleniu monitu o hasło dla ssh wpisz nazwę użytkownika jako „ git ”, a hasło jako hasło logowania do systemu

Vinayak Deshpande
źródło
Zmiana typu zdalnego adresu URL repozytorium z HTTPSna SSHrozwiązany mój problem. Dzięki @MichaelR, twój artykuł był naprawdę pomocny, chociaż nic z niego nie przeczytałem: D
Geradlus_RU
1

Chciałbym dodać odpowiedź dla tych, którzy mogą nadal wymagać wprowadzenia hasła, ponieważ ustawili IdentitiesOnly tylko na tak. Może to być spowodowane wieloma kluczami i plikiem tożsamości, które są kluczami do git lub serwera.

Po wygenerowaniu klucza i skopiowaniu go na serwer:

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

Odkryłem, że to nie działa.

Potem poszedłem sprawdzić ~/.ssh/configplik, zobaczyłem to na dole:

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ć, wchodząc ssh 12gpu.

Następnie możesz dodać wiele kluczy ssh, używając swoich ulubionych nazw, i wystarczy dodać ustawienia, takie jak powyższe cztery linie, do pliku konfiguracyjnego.

Host to nazwa, którą chcesz wprowadzić, gdy później połączysz się z serwerem; NazwaHosta to ip serwera lub domeny jak github.com; Użytkownik to nazwa użytkownika, którą logujesz na serwerze, jak nazwa użytkownika lub git dla github lub gitlab; a IdentityFile to plik, w którym przechowujesz wygenerowany klucz.

Lerner Zhang
źródło
1

Ogólnie rzecz biorąc, oto kroki umożliwiające zdalne połączenie 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 swój klucz publiczny i zaloguj się na zdalnym serwerze

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

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

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

  • Następnie spróbuj ssh na swoim serwerze

    $ ssh username@your_ip_address

Źródło: http://diary-of-programmer.blogspot.com/2018/08/tips-how-to-ssh-to-your-digitalocean.html

Anang Satria
źródło
0

Użyj sshzdalnego adresu URL dostarczonego przez Github nie https.

Lost Koder
źródło
OP wyraźnie powiedział, że używa SSH zamiast HTTPS.
wolny
0

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

  1. Zmienna środowiskowa HOME musi być ustawiona na profil użytkownika (np. C: \ Users \ Laptop)
  2. Przejdź do folderu C: \ Users \ Laptop \ .ssh \ i edytuj plik „config” (lub utwórz plik!) Przykład: C: \ Users \ Laptop.ssh ​​\ config (uwaga: na końcu nie ma!)
  3. Dodaj hosta git-server do pliku „config” w następujący sposób:

    #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: //nazwa_hosta.com/git-server/repos/picalc.git

Możesz użyć dodatkowych parametrów konfiguracyjnych dla wpisu hosta pliku „config”. 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
Fabian Stern
źródło
0

Ten sam problem dla mnie, a rozwiązaniem było:

Zobacz ten dokument github, aby przekonwertować adres URL pilota z https na ssh. Aby sprawdzić, czy adres URL zdalnego to ssh czy https, użyj git remote -v. Aby przełączyć się z https na ssh: git zdalny początek adresu URL [email protected]: NAZWA UŻYTKOWNIKA / REPOSITORY.git @jeeYem

Bruno Leite
źródło
0

Mobaxterme miał do tego interfejs UI

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

Amir Heshmati
źródło
0

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

Jeśli w systemie Windows i przy użyciu PuTTY jako generatora kluczy SSH , to szybkie i łatwe rozwiązanie okazało się jedynym działającym rozwiązaniem dla mnie za pomocą zwykłego wiersza poleceń systemu Windows:

  1. Twoja instalacja PuTTY powinna zawierać kilka plików wykonywalnych, między innymi, pageant.exeiplink.exe
  2. Podczas generowania klucza SSH za pomocą PuttyGen klucz jest przechowywany z .ppkrozszerzeniem
  3. Uruchom "full\path\to\your\pageant.exe" "full\path\to\your\key.ppk"( należy podać). Spowoduje to wykonanie pageantusługi i zarejestrowanie klucza (po wprowadzeniu hasła).
  4. Ustaw zmienną środowiskową GIT_SSH=full\path\to\plink.exe( nie można cytować). Spowoduje to przekierowanie poleceń związanych z komunikacją git ssh do usługi, plinkktóra będzie korzystać z pageantusługi do uwierzytelniania bez ponownego pytania o hasło.

Gotowy!

Uwaga 1: Ta dokumentacja ostrzega przed pewnymi osobliwościami podczas pracy z GIT_SHHustawieniami zmiennych środowiskowych. Mogę push, pull,fetch z dowolną liczbą dodatkowych parametrów do polecenia i wszystko działa dobrze dla mnie (bez konieczności pisania dodatkowego skryptu jak sugerowano w nim).

Uwaga 2: Ścieżka do PuTTYinstalacji zwykle znajduje się wPATH więc można ją pominąć. W każdym razie wolę określać pełne ścieżki.

Automatyzacja:

Następujący plik wsadowy można uruchomić przed użyciem git z wiersza polecenia. Ilustruje użycie ustawień:

git-init.bat
   @ECHO OFF
   :: Use start since the call is blocking
   START "%ProgramFiles%\PuTTY\pageant.exe" "%HOMEDRIVE%%HOMEPATH%\.ssh\id_ed00000.ppk"
   SET GIT_SSH=%ProgramFiles%\PuTTY\plink.exe

W każdym razie mam GIT_SSHzmienną ustawioną SystemPropertiesAdvanced.exe > Environment variablesi pageant.exedodaną jakoRun klucz rejestru (*).

(*) Kroki dodawania Runklucza rejestru>

  1. biegać regedit.exe
  2. Nawigować do HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Run
  3. Do (menu) Edit > New > String Value
  4. Wpisz dowolną (ale unikalną) nazwę
  5. Wykonaj (menu) Edit > Modify...(lub kliknij dwukrotnie)
  6. Wprowadź ścieżkę w cudzysłowie do pageant.exei public keynp. "C:\Program Files\PuTTY\pageant.exe" "C:\Users\username\.ssh\id_ed00000.ppk"(Zauważ, że %ProgramFiles%zmienne itp. Nie działają tutaj, chyba że wybierzesz Expandable string valuemiejsce String valuew kroku 3.).
PavDub
źródło
-1

Myślę, że odpowiedź @sudo bangbang powinna zostać zaakceptowana.

Podczas generowania klucza ssh wystarczy nacisnąć „Enter”, aby pominąć wpisywanie hasła, gdy pojawi się monit o skonfigurowanie hasła.

Oznacza to, że NIE POTRZEBUJESZ hasła podczas korzystania z klucza ssh, więc pamiętaj o generowaniu klucza ssh, NIE wprowadzaj hasła, po prostu naciśnij „Enter”, aby je pominąć.

andrava
źródło
1
To bardzo złe sugestie. Zobacz komentarz @ user456814
Sos