/
git 에 ssh 로 연결시 verbose mode 로 실행하기

git 에 ssh 로 연결시 verbose mode 로 실행하기

SSH 를 사용해서 git 에 연결시 권한 에러가 발생하면 이 방법을 사용해서 원인을 찾고 해결할 수 있습니다.


git pull 이나 push 를 할 때 SSH key 를 잘못 설정했으면 다음과 같은 permission denied 에러가 발생합니다.

git@github.com: Permission denied (publickey).

이럴 때 ssh 의 동작을 자세히 관찰할 수 있는 verbose mode 로 동작시키면 디버깅에 유용하지만 git 이 ssh 를 바로 호출하므로 verbose mode 옵션을 줄수가 없습니다.

git 2.3 이상부터는 GIT_SSH_COMMAND 환경 변수에 ssh 명령어를 설정할 수 있는데 verbose mode 가 필요하면 이 변수를 활용하면 됩니다.

변수 설정

Linux/OSX

export 명령어로 환경 변수를 설정합니다.

ssh 의 verbose mode 는 -v, -vv, -vvv 세가지이며 v 가 많을수록 더 자세한 정보를 출력합니다.

export GIT_SSH_COMMAND="ssh -v"

이제 git pull 이나 git push 같이 리모트 저장소에 연결하는 명령어를 실행하면 현재 ssh 설정을 디버깅할 수 있습니다.

사용이 끝났으면 unset 으로 변수를 해제합니다.

unset GIT_SSH_COMMAND


일시적으로 설정하려면 export 대신 변수를 지정하고 git 명령을 실행하면 됩니다.

GIT_SSH_COMMAND="ssh -v" git pull

Windows

Powershell 에서 GIT_SSH_COMMAND 변수를 설정합니다.

$env:GIT_SSH_COMMAND="ssh -v"


이제 git pull 이나 push 명령을 실행합니다.

git pull origin main
git push  origin main


변수를 해제하려면 다음 명령을 실행합니다.

Remove-item env:GIT_SSH_COMMAND

.ssh/config에 설정

SSH 의 설정 파일에 다음과 같이 LogLevel 변수를 넣어도 verbose mode 로 동작합니다.

Host github.com
    LogLevel Debug3
    PreferredAuthentications publickey

같이 보기

Ref

Related content

github, gitlab, bitbucket 에 ssh 공개키가 제대로 등록되었는지 확인하는 방법
github, gitlab, bitbucket 에 ssh 공개키가 제대로 등록되었는지 확인하는 방법
More like this
~/.ssh/authorized_keys 에 public key 를 추가했으나 자동 로그인이 안 됨
~/.ssh/authorized_keys 에 public key 를 추가했으나 자동 로그인이 안 됨
More like this
Windows 에서 ssh private key(개인키) 캐싱하기
Windows 에서 ssh private key(개인키) 캐싱하기
More like this
ssh-agent 가 private key 를 캐싱할 수 있도록 등록해 주는 ssh-add 명령어 사용법
ssh-agent 가 private key 를 캐싱할 수 있도록 등록해 주는 ssh-add 명령어 사용법
More like this
scp, ssh, rsync 를 key 비밀 번호/암호 입력창 없이 사용하기
scp, ssh, rsync 를 key 비밀 번호/암호 입력창 없이 사용하기
More like this
ssh Authentications method 설정
ssh Authentications method 설정
More like this