Co dokładnie robi ssh-add?

15

Niedawno ponownie zainstalowałem laptopa i stwierdziłem, że „git clone” nie działa. Konsekwentnie otrzymywałem Permission denied (publickey).błędy.

Poprawka jest udokumentowana na stronie problemów SSH w GitHub : użyj, ssh-addaby powiedzieć SSH o kluczu, którego chcę użyć do uwierzytelnienia w GitHub.

Moje pytanie brzmi: co ssh-addwłaściwie robi?

Od jakiegoś czasu zamierzam poszerzyć moją wiedzę na temat SSH i wydaje się to dobrą wymówką, aby zacząć :-)

Duncan Bayne
źródło

Odpowiedzi:

21

ssh-adddodaje tożsamość klucza prywatnego (z ~/.sshkatalogu) do agenta uwierzytelniania ( ssh-agent), aby agent ssh mógł zająć się uwierzytelnieniem za Ciebie i nie musisz wpisywać haseł w terminalu.

Peter John Acklam
źródło
Będę szczery, to mnie na chwilę pomieszało. Myślałem, że klient ssh zawsze używał klucza w twoim ~/.sshkatalogu. Czy niektóre dystrybucje wykonują odpowiednik ssh-addautomatycznie? Może dlatego byłem zdezorientowany?
blong
4
sshużywa klucza z ~/.sshkatalogu, ale jeśli klucz jest chroniony hasłem, hasło to musi zostać wprowadzone w pewnym momencie. Jeśli używasz ssh-agenti ssh-add, wpisujesz to hasło raz. W przeciwnym razie musisz wpisać hasło przy każdym użyciu ssh. Pamiętaj, że jeśli klucz nie jest chroniony hasłem, możesz z niego korzystać sshbez pytania o hasło.
Peter John Acklam,
Może być wiele kluczy ssh ~/.sshi może to być bardziej przydatna rzecz, zobacz w dokumentach
Frank Nocke
0

Na podstawie tego artykułu w github , w niektórych dystrybucjach Linuksa nawet po prawidłowym skonfigurowaniu wszystkiego pojawia się ten błąd:

Agent admitted failure to sign using the key.
debug1: No more authentication methods to try.
Permission denied (publickey).

I powinieneś biec, ssh-addaby rozwiązać problem.

Sadegh
źródło