ssh config 설정해서 서버마다 다른 ssh key 사용하기
git 서버가 여러 개 있을 경우(github, gitlab, bitbucket 등) 서버마다 다른 ssh 키를 등록할 수 있습니다.
ssh 는 -i(identity_file) 옵션으로 연결시 사용할 개인키를 지정할 수 있지만 매번 지정하기가 번거로우므로 Host 별 사용할 ssh 키를 설정 파일($HOME/.ssh/config) 에 지정하면 편리하게 사용할 수 있습니다.
설정
$HOME/.ssh/config 에 다음과 같이 Host 에 따라 사용할 개인키를 지정합니다.
~/.ssh/config 파일의 모드는 644 이여야 합니다( chmod $HOME/.ssh/config)
config 의 정상 설정 여부를 확인하기 위해 ssh 를 verbose 모드로 실행해 봅니다.
$ ssh -vvv -T github Hi lesstif! You've successfully authenticated, but GitHub does not provide shell access.
위와 같은 문구가 나온다면 github 는 정상적으로 설정되었습니다.
~/.ssh/config 에 있는 alias 를 사용하려면 git 연결시 전체 URL 을 사용하지 않고 Host 에 등록된 이름을 사용하면 됩니다.
alias 로 git clone
$ git clone github:lesstif/php-jira-rest-client.git
pull 이나 push 등 remote 에 연결하는 명령어를 실행시 어떤 키를 사용하는지 확인하려면 --verbose 옵션을 주고 실행하면 됩니다.
$ git pull origin --verbose Enter passphrase for key '/home/lesstif/.ssh/gitlab-key/id_rsa':