.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 git
SSH를 사용하여 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를 사용합니다).