티스토리 뷰

호스팅 서버에 ssh 방식으로 git 연동하기

Ubuntu14.04 LTS 호스팅 서버를 쓰고 있었는데, 본래 https로 시작되는 git URL로 연결을 요청하다 어느날 서버를 업데이트하려고 git pull을 하니 gnutls_handshake() failed: Handshake failed 과 같은 에러가 떴다.

찾아보니 해당 서버에서 발생하는 문제중 하나이며 빠른 해결방법은 https 방식이 아니라 ssh 방식으로 git 연동을 하는 것이라고 한다.

 

ssh 연동 방법

  1. 해당 서버에 ssh 키를 생성한다.

  2. id_rsa.pub 파일에 생성된 public key를 Bitbucket, Github, Gitlab 같이 레파지토리 저장소에 추가한다.

    각 플랫폼의 ssh 설정 페이지
    Bitbucket - https://bitbucket.org/account/settings/ssh-keys/
    Github - https://github.com/settings/ssh/new 
    Gitlab - https://gitlab.com/profile/keys
  1. 서버가 각 플랫폼에서 인증이 되는지 확인해본다.
// Bitbucket
ssh -T git@bigbucket.org
// Github
ssh -T git@github.com
// Gitlab
ssh -T git@gitlab.com

 

  1. 정상동작하면 기존 레파지토리 폴더로 가서 .git/config를 vi나 vim 에디터로 연다.

  2. remote origin URL (https로 시작되는)을 다음과 같이 수정한다.
// Bitbucket
git@bitbucket.org:<username>/<repo>.git
// Github
git@github.org:<username>/<repo>.git
// Gitlab
git@gitlab.org:<username>/<repo>.git

 

  1. 다시 git pull을 요청하면 ssh 인증을 통해 곧바로 레파지토리를 업데이트한다.

 

레퍼런스

https://stackoverflow.com/questions/60262230/fatal-unable-to-access-gnutls-handshake-failed-handshake-failed

댓글