Jestem ssh na zdalnym hoście (linux, fedora) i chcę tam wykonać operację ssh (git z bitbucket). Na tym komputerze działa ssh-agent,
$ ps -e|grep sh-agent
2203 ? 00:00:00 ssh-agent
ale kiedy chcę się bawić, muszę wprowadzić hasło
$ git pull
Enter passphrase for key '/user/wgong/home/.ssh/id_rsa':
Uwaga: jeśli działam na tym komputerze lokalnie, nie poprosi mnie o podanie hasła
Odpowiedzi:
Moim zdaniem najlepszy sposób użycia ssh
Przed użyciem Git dodaj swój klucz do ssh-agent
Uruchom ssh-agent, jeśli nie został uruchomiony:
Dodaj swój klucz prywatny za pomocą ssh-add
Sprawdź, czy klucz został dodany (parametr to mała litera L):
Spróbuj połączyć się z serwerem Git:
Teraz możesz korzystać z Git bez dodatkowych monitów dotyczących hasła.
Inaczej
https://unix.stackexchange.com/questions/90853/how-can-i-run-ssh-add-automatically-without-password-prompt
źródło
.bashrc
?eval
jest potrzebny, ponieważ wyświetla polecenia, które eksportują zmienne środowiskowe, takie jak SSH_AUTH_SOCK, które są potrzebne. unix.stackexchange.com/questions/351725/…Jeśli masz już
ssh-agent
uruchomiony, możesz dodać klucz i będziesz musiał wprowadzić hasło raz i tylko raz dla tej sesji.Nie mówisz, jakiego systemu operacyjnego używasz, ale jeśli tak się dzieje, to Linux & Gnome, to aplikacja „Hasła i klucze” (nazwa CLI:)
seahorse
może nimi zarządzać, aby były odblokowane po zalogowaniu (nie wymaga hasła) . Inne środowiska pulpitu Linux mają własnych menedżerów. Nie jestem pewien, co robią tutaj inne systemy operacyjne.źródło
Głównym powodem pytania o hasło jest to, że klucz jest zaszyfrowany, porównaj te dwa:
nieszyfrowane
zaszyfrowane
Musisz więc wykonać jedną z następujących czynności:
~/.ssh/config
i podaj inny plik tożsamości (IdentityFile
).ssh-add -l
aby wyświetlić listę wszystkich swoich tożsamości (następnie porównaj z lokalnymi) i sprawdź dwukrotnie w Stash, jeśli używasz odpowiednich kluczy (istnieją one w konfiguracji Stash).Jeśli znasz hasło i chcesz je zautomatyzować, wypróbuj następujące obejście:
Rozwiązywanie problemów:
eval "$(ssh-agent -s)"
).GIT_TRACE=1 git pull
lub za pomocąGIT_SSH_COMMAND="ssh -vv"
Uruchom ponownie (Git 2.3.0+), aby ponownie debugować polecenie.Możesz spróbować ominąć prośbę o hasło (które przekieruje je na
true
), ale nie sądzę, żeby to pomogło. Jeśli o to poprosi, istnieje ku temu powód i jest to w zasadzie wymagane.źródło
ssh-add
Program rozpoczyna czynnik , który może mieć (i świadczenia) swoje hasło. Zdalnym sposobem korzystania z niego jest element nadrzędny interaktywnej powłoki (aby agent się nie zatrzymał).Oto kilka powiązanych pytań:
Teraz ... łączymy się zdalnie , z reguły twoje polecenie nie loguje się jako takie, więc się nie uruchamia
ssh-add
. Możesz obejść ten problem, wykonując skrypt, któryssh-agent
ssh-add
Słaby punkt to drugi krok: nadal będziesz monitowany o hasło, chyba że osłabisz swoje bezpieczeństwo za pomocą klucza, który nie ma hasła . Niektórzy to robią, większość odradza.
źródło
ssh-add
nie uruchamia agenta. Łączy się z już działającym agentem.Możesz łatwo usunąć hasło klucza, używając następującego polecenia
W pierwszym monicie wprowadź ścieżkę do pliku (lub naciśnij klawisz Enter, aby zmienić domyślną) Drugi monit, wprowadź starą frazę Kolejny monit, wystarczy nacisnąć Enter, aby rozbroić hasło
Wygląda na to, że jest to najprostszy sposób!
źródło
Nadal pojawi się monit o hasło do odszyfrowania klucza prywatnego, nawet jeśli jest on załadowany
ssh-agent
momentu dodania odpowiedniego klucza publicznego SSH do zdalnego~/.ssh/authorized_keys
.Powielać:
Dość mylące. W takim przypadku wystarczy zdalne hasło logowania SSH.
Mogę spekulować, że to uniemożliwia dodanie twojego klucza publicznego (który jest sparowany z zaszyfrowanym kluczem prywatnym) bez znajomości hasła szyfrowania dla odpowiedniego klucza prywatnego. W każdym razie jest to procedura jednorazowego logowania.
źródło