2012-06-19 12 views
42

Say katalogiem .ssh zawiera 30 klawiszy (15 prywatny i publiczny) 15GIT i SSH, który klawisz jest używany?

Gdzie GIT, można sprawdzić, który z nich jest używany do podłączenia do danego zdalnego repo?

+4

Kto głosował na "zamknij", to pytanie - jest bezpośrednio związane z programowaniem z tego samego powodu pytania o GIT są dozwolone tutaj – JAM

+1

Prawdopodobnie ... To naprawdę jest pytanie superużytkownika, problem tutaj nie jest git, ale platforma, na której działa. Nie możesz sprawdzić "in git", ponieważ git nie obchodzi, dotyczy tylko tego, jak używasz ssh i jak jest skonfigurowany. Czy używasz ssh-agent, wszelkiego rodzaju systemu zarządzania kluczami, jakiego systemu operacyjnego używasz, jakiej wersji itp.? – Arafangion

Odpowiedz

41

Poniższy wpis w .ssh/config pliku rozwiązuje problem

host git.assembla.com 
    user git 
    identityfile ~/.ssh/whatever 

Gdzie ~/.ssh/whatever jest ścieżką do prywatnego klucz

Dodatkowo, użytkownik i gospodarz można odebrać od

git push [email protected]:repo_name.git 
     ^__ ^_______________ 
     user host 
+0

, więc jeśli chciałbym użyć innego klucza ssh dla innego hosta, czy po prostu powtórzę to samo po pierwszym? Czy plik tożsamości dotyczy pierwszego hosta przed nim? – MikeSchem

+0

ok, tak, wygląda na to, że tak jest https://www.cyberciti.biz/faq/force-ssh-client-to-use-given-private-key-identity-file/ – MikeSchem

5

Od git po prostu używa ssh do połączenia, użyje tego klucza, który użyłby ssh do połączenia ze zdalnym hostem. Szczegółowe informacje znajdują się w pliku ~/.ssh/config; blok host używa dyrektywy IdentityFile do określenia klucza prywatnego do użycia. Strona podręcznika ssh_config(5) zawiera pełne szczegóły.

+0

Hmm .. plik nie istnieje w moim systemie. Czy to powinno być? – JAM

+1

@JAM Z jakiego systemu operacyjnego korzystasz? Czasami plik konfiguracyjny znajduje się w '/ etc/ssh/ssh_config' –

+0

Jestem na MACOS.Znaleziono '/ etc/ssh_config', który wydaje się być plikiem pełnym skomentowanych wpisów – JAM

6

O ile nie zostanie określony w .ssh/config, użyje domyślnego pliku klucza prywatnego. Domyślnym plikiem jest ~/.ssh/id_rsa lub ~/.ssh/id_dsa lub ~/.ssh/identity w zależności od wersji protokołu.

1

Na serwerze zdalnym edytuj plik sshd_config i zmień LogLevel z INFO na VERBOSE i zrestartuj ssh.

Teraz plik dziennika będzie zawierał odcisk palca klucza, który został użyty do uwierzytelnienia każdego użytkownika.

Na Ubuntu, pliki te są następujące:

/etc/ssh/sshd_config 
/var/log/auth.log 

ale mogą być różne na innej dystrybucji. Wystarczy google dla ich lokalizacji (niektóre używają/var/log/secure na przykład).

31

Wykonywanie ssh w trybie pełnym, aka ssh -v [email protected], wydrukuje ogromny ładunek informacji debugowania, który zawiera również informacje o plikach kluczy, które próbuje zalogować.

debug1: Authentications that can continue: publickey 
debug1: Next authentication method: publickey 
debug1: Offering RSA public key: /home/user/.ssh/id_rsa 
debug1: Server accepts key: pkalg ssh-rsa blen 332 
debug1: read PEM private key done: type RSA 
debug1: Authentication succeeded (publickey). 

Teraz, jeśli połączyć to z kroku 4 w Git własnego SSH help page, ssh -vT [email protected] może dać odpowiedź.

Uwaga: Możesz również użyć przełącznika -i, aby poinformować ssh podczas wykonywania polecenia, którego pliku klucza użyć.

+0

Zobacz również: http://stackoverflow.com/questions/18845799/show-ssh-key-file-in-git-bash – Sharadh

+0

Możesz także pobrać standardowe wyjście błędów polecenia ssh, aby znaleźć plik klucza podobny do tego: 'ssh -vv użytkownik @ host 2>> (grep Offering) '- to ułatwi sprawę. Ostatni plik powinien być kluczem publicznym. Na przykład: 'debug1: Oferowanie klucza publicznego RSA:/Users/macbookpro/.ssh/id_rsa' –

Powiązane problemy