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?
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?
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
, 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
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
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.
Hmm .. plik nie istnieje w moim systemie. Czy to powinno być? – JAM
@JAM Z jakiego systemu operacyjnego korzystasz? Czasami plik konfiguracyjny znajduje się w '/ etc/ssh/ssh_config' –
Jestem na MACOS.Znaleziono '/ etc/ssh_config', który wydaje się być plikiem pełnym skomentowanych wpisów – JAM
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.
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).
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ć.
Zobacz również: http://stackoverflow.com/questions/18845799/show-ssh-key-file-in-git-bash – Sharadh
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' –
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
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