[git] Git 및 SSH, 어떤 키가 사용됩니까?

.ssh디렉토리에 30 개의 키 (개인 15 개 및 공개 15 개)가 있다고 가정 해보십시오 .

Git에서 주어진 원격 저장소에 연결하는 데 사용되는 것을 확인할 수있는 곳은 어디입니까?



답변

.ssh/config파일 의 다음 항목 은 문제를 해결합니다.

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

~/.ssh/whatever개인 키에 대한 경로는 어디에 있습니까?

또한 사용자와 호스트는

git push git@git.assembla.com:repo_name.git
         ^__ ^_______________
         user host


답변

ssh를 상세 모드 (aka)에서 실행 ssh -v user@host하면 엄청난 양의 디버깅 정보가 인쇄되며, 여기에는 로그인을 시도하는 키 파일에 대한 세부 정보도 포함됩니다.

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).

당신이 망할 놈의 자신의 4 단계로,이 결합하면 이제 SSH 도움말 페이지 , ssh -vT git@github.com당신에게 대답을 줄 수 있습니다.

참고 : -i스위치를 사용하여 명령 실행 중에 사용할 키 파일을 ssh에 알릴 수도 있습니다.


답변

에 지정되어 있지 않으면 .ssh/config기본 개인 키 파일을 사용합니다.

기본 파일은 ~/.ssh/id_rsa또는 ~/.ssh/id_dsa또는 ~/.ssh/identity프로토콜 버전에 따라 다릅니다.


답변

내 취향에 가장 실용적인 것은 다음과 같습니다.

GIT_SSH_COMMAND='ssh -v' git …

물론 상황에 따라 매번 수동으로 앞에 추가 할 필요가 없도록 현재 SHELL의 환경으로 내보내는 것이 유용 할 수 있습니다. 그러면 다음과 같습니다.

export GIT_SSH_COMMAND='ssh -v'
git …

man gitSSH를 사용하여 Git의 작업에 영향을 미치는 몇 가지 환경 변수가 있습니다. 에 따르면 man ssh당신은 배포 할 때 디버깅 정보를 얻을 수있는 -v옵션을 (뿐 아니라, 더 많은에 대한 호기심이 있다면 설명서를 확인).

어떤 키가 사용됩니까?

출력에서 다음과 같은 smth를 볼 수 있습니다.

debug1: Offering public key: …

… 그것이 당신의 qn에 대한 답입니다.


답변

때문에 git단지가 사용하는 ssh연결,이 중 키 사용 ssh원격 호스트에 연결하는 데 사용할 수 있습니다. 자세한 내용은 ~/.ssh/config파일을 참조하십시오. host블록은 사용 IdentityFile사용에 개인 키를 지정하는 지시문을. ssh_config(5)맨 페이지는 자세한 내용이 포함되어 있습니다.


답변

이것은 슈퍼 에지 일 수 있지만 실행 후 키를 ssh -vT git@github.com확인하고 있음을 보여 주었고 /root/.ssh홈 디렉토리를 확인할 것으로 예상하고 루트로 로그인 한 것을 깨달았습니다!


답변

원격 서버에서 sshd_config 파일을 편집하고 LogLevel을 INFO에서 VERBOSE로 변경하고 ssh를 다시 시작합니다.

이제 로그 파일에 각 사용자를 인증하는 데 사용 된 키의 지문이 저장됩니다.

Ubuntu에서 이러한 파일은 다음과 같습니다.

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

하지만 다른 배포판에서는 다를 수 있습니다. 위치를 Google로 확인하세요 (일부는 / var / log / secure를 사용합니다).