티스토리 뷰

Git

Git - ssh접속//Source Tree,GitLab (Mac)

Basic Developer 2021. 11. 17. 13:56

Source Tree로 GitLab을 연동 할 때는 Https연동 방식을 이용했다.

그러나 HTTPS방식 보다는 SSH방식이 보안이 더 좋다고 하여 연동을 해보려고 한다.

 

ssh인증 방식은 두가지가 존재한다.

1.비밀번호 인증

ssh로 접속을 요청하면 서버에 등록한 비밀번호를 입력하게 되고 입력한 값이 맞으면 접속이 허용된다.

2.Public key,Private Key를 통한 인증

ssh로 접속을 요청하면 서버에 등록한 Public Key를 내 로컬에 저장되어 있는 private key와 연동한다.

 

GitLab은 2번의 방법을 이용하여 ssh 연동을 제공한다.

https://docs.gitlab.com/ee/ssh/

GitLab 문서의 SSH를 보면 설명이 잘 되어있다.

본 포스트는 GitLab 문서를 토대로 작성되어있다.

 

SSH연동 순서는 크게 

1. ssh-keygen으로 Public Key,Private Key 생성

2. GitLab에 SSH Public Key 등록

3. known_hosts를 등록

 

추가적으로

Config에 Host Name 별 Private Key 연동 (선택)

여러개의 계정을 이용 할 때 Config를 설정해줘야 한다.

 

 

ssh-keygen으로 Public Key,Private Key 생성

Key 생성

  • ssh-keygen -t rsa -b 2048 -C "comment" -> "comment"라는 별칭으로 key 생성 -> GitLab에 Public Key를 등록 할 때 식별자로 들어가게 된다.
  • Enter file in which to save the key (/Users/ahn/.ssh/id_rsa): -> Public Key,Private Key 파일의 이름을 id_rsa로 할 것인지 묻는 문구이다.파일 이름을 바꿀거면 파일이름을 입력하고 아니면 그냥 엔터만 입력한다.
  • Enter passphrase (empty for no passphrase): Private Key 비밀번호 입력 문구
  • Enter same passphrase again: 비밀번호 확인 문구

명령어 'cd ~/.ssh' -> .ssh폴더로 이동 -> 'ls -a' -> key 생성 되었나 확인

생성된 Key 확인

 

GitLab에 SSH Public Key 등록

"tr -d '\n' < ~/.ssh/id_rsa.pub | pbcopy"문구를 이용해서 Public Key 복사

생성된 Key 복사

Key 텍스트 필드에 붙여넣기 하고 Key를 등록한다.

 

이제 소스트리를 들어가서 계정을 연동하고 원격 리스트를 받아온다.

Source Tree 계정연동

사용자 이름은 GitLab 아이디를 입력하고 암호에는 Private Token을 입력한다.

계정연동은 모두 완료 되었고 이제 원격 리스트에서 클론을 한다.

클론 클릭시 Private Key 비밀번호 입력 화면

여기서 비밀번호를 입력한다!

비밀번호를 아무리 쳐도 입력 화면은 계속해서 팝업 될 것이다.

known-hosts에 GitLab에 대한 정보가 없기 때문이다.

known-hosts는 ~/.ssh/known-hosts 경로에 존재한다.

known-hosts는 처음 접속시에 접속하는 대상이 믿을만한 대상인지 확인하고 사용자가 yes를 입력하게 되면 Ansible Node(Destination)의 키를 known-hosts 파일에 저장하게 되어서 다음 접속부터는 확인 없이 접속이 가능하다.

-> Source Code가 하지 않으니 우리가 한번 접속을 해줘야한다.

 

known_hosts를 등록

GitLab에 최초 접속

    • The authenticity of host 'gitlab.com (172.65.251.78)' can't be established.ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw.Are you sure you want to continue connecting (yes/no/[fingerprint])? yes -> 믿을만한 접속환경인지 물어본다.
    • Warning: Permanently added 'gitlab.com,172.65.251.78' (ECDSA) to the list of known hosts. -> known-hosts에 등록 되었다는 문구.
    • Enter passphrase for key '/Users/ahn/.ssh/id_rsa': -> Private Key 비밀번호 입력

다시 클론을 하고 비밀번호를 입력하면 클론이 되는것을 볼 수 있다.

 

 

#추가적인 내용

ssh-keygen으로 생성하는 단계로 돌아가서 만약 "id_rsa"가 아닌 다른 이름으로 파일을 생성하면 어떻게 될까

다른이름으로 Key 생성한다.
다른 이름으로 생성된 Key 파일

위에 Public Key를 복사해서 GitLab에 등록한다.

Key 파일의 이름이 바뀌었으니 계정을 다시 연동 해줘야 한다.

id_rsa가 없으니 Key가 없다고 나온다

키 생성하기를 누른다.

비밀번호를 입력하고 저장을 누르면 새로 생성된 Key가 GitLab에 등록되고 ~/.ssh"에 생성이 된다.

config에 들어가면 밑에와 같은 설정이 되어있다.

vim config

이제 클론을 해보자.

비밀번호를 물어보지 않고 바로 클론이 된다.

근데 현재는 known_hosts에 gitlab에 대한 정보가 들어 있다

"vim known_hosts"를 입력하여 gitlab 대한 정보를 지우고 클론을 해보자

비밀번호를 계속해서 치라는 팝업이 또! 등장한다.

known_hosts에 gitlab에 대한 정보를 등록해주자.

 

 

이제 known-hosts를 등록해보자. -> Git에 접속해보자

git lab에 접속

접속 권한이 없다고 나온다 -> "id_rsa"이 default 값이기 때문에 config를 설정 해주지 않으면 접속을 할 수가 없다.

Config 설정

"~/.ssh/config" 경로로 config를 생성한다.(명령어 vim config)

config 생성
Config 설정

  • Host : 접속 할 때 식별자 -> Key 파일 이름과 무관하게 지어도 된다.
  • IdentityFile : Key 파일의 경로를 입력

"Config 설정을 함으로써 여러개의 계정마다 다른 Private Key로 연동 할 수 있게 된다."

git lab 접속

"ssh -T othernameHost" : 식별자를 통한 연동

클론을 진행 해보자

클론이 정상적으로 진행 됨을 알 수 있다.

비밀번호를 치지 않아도 된다 -> Source Tree에 Public Key와 Private Key를 생성하면서 비밀번호가 저장 되었기 때문이다.

known_hosts의 GitLab에 대한  정보는 GitLab에 등록된 Public Key를 해석 할 수 있는 어떠한 Private Key로 SSH 연동을 시키면

된다.

Source Tree의 Public Key -> GitLab에 등록 -> known_hosts GitLab 정보없음 -> GitLab에 등록된 다른 Public Key을 통한

known_hosts에 GitLab정보 등록 -> Source Tree Public Key -> 등록된 GitLab정보의 known_hosts이용 ->

Source Tree Public Key와 GitLab ssh 연동 

 

 

 

'Git' 카테고리의 다른 글

Git :: 기초 - Tag  (0) 2022.10.25
Xcode - Git - SourceTree  (0) 2021.11.03
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함