Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

개요

Gitlab 은 CLI 또는 GUI 기반에서 개발 지원이 가능하다.

Gitlab 작업시 동일 Remote, 다른 Remote, 그리고 다른 Repository 에서 매번 계정과 암호를 인증해야하는 불편한 작업이 발생된다. 

또한, SSH 인증 방법을 활용하지 않고 다음의 명령어로 환경설정 후 작업에도 유용하다.

Code Block
themeRDark
# git config --global user.name 'your name'
# git config --global user.email 'email@email.com'
# git config --global credential.helper store

SSH 는 Git 작업시 매번 암호를 입력할 필요없이, 로컬머신에 연결, 등록하여 쉽고 빠르게 사용할 수 있는 하나의 인증 수단이다.

SSH 는 공개키와 비공개키를 쌍으로 이루고 있으며, 대부분 자동 배포 용도로 사용된다.

Gitlab SSH Key 생성

Git 서버들은 SSH 공개키로 인증할 수 있다. 먼저 이미 생성되어있을지 모르는 로컬의 SSH Key 를 확인한다.

SSH 공개키는 Win/Mac 특정 OS 구분없이 Local Command 모드에서 생성하면 된다.

SSH 키 기본적인 저장 위치는 /.ssh 디렉토리에 저장된다. 

즉, ~/.ssh 디렉토리를 확인하면 공개키가 생성되어 있는지 확인 할 수 있다.

Code Block
themeRDark
# cd ~/.ssh
# ls
authorized_keys2  id_dsa       known_hosts
config            id_dsa.pub
# la -al ~/.ssh //key 가 있는지 확인
# ssh-keygen -t rss -b 4096 -C "useremail@email.com" //ssh-key 생성

something, something.pub이라는 형식의 파일은 보통 id_dsa나 id_rsa라고 되어 있다.

.pub 파일은 공개키 이며, 그 외 다른 파일들은 개인키 이다.

.ssh 디렉토리가 없으면 ssh-keygen 를 실행하여 키를 생성해야 한다. 

SSH key는 별도 옵션(인자)로 생성한다. 

-t 는 rsa 타입을 지정할 건지의 여부, -C comment 를 기록, -b는 비트수를 지정하며, 기본적으로 2048비트가 설정되지만, Gitlab 에서는 4096 비트를 설정한다. 


Code Block
themeRDark
# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ???
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): ???
Enter same passphrase again: ???
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:fvsuLNIf7m2Vf4Hs/HlEgS2AstHuQULsTs9DsXjjjv4 root@sbION-kubernates69
The key's randomart image is:
+---[RSA 2048]----+
|      o.. ... o  |
|       = =     o |
|      . O o   .  |
|       = BA      |
|      o S o . .  |
|       o *   o ..|
|       .+.+ o. o.|
|      ..o+o+.o  =|
|      .o.E==+ .oo|
+----[SHA256]-----+
# cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAB...

ssh-keygen 를 실행하게 되면, 먼저 키를 어디에 저장할지 경로를(.ssh/id_rsa) 입력하고 암호를 두 번 입력한다.


다음을 주의 하자.

Enter file in which to save the key (/Users/tongchunkim/.ssh/id_rsa) : 어디에 key를 만들지 묻는다. 일반적으로 Enter 로 기본 설정을 진행한다. 

Enter passphrase (empty for no passphrase) : key의 패스워드를 지정할 수 있다. 역시 일반적으로 Enter 로 진행한다. 

암호를 비워두면 키를 사용할 때 암호를 묻지 않는다. (물어보면 정말 난감함....)

이제 key 가 생성되었고, 기본 위치(/Users/tongchunkim/.ssh/id_rsa)에 파일이 생성 되었다. 

SSH 생성 후 공개키 확인은 다음의 명령어를 통하여 확인 할 수 있다.

Code Block
themeRDark
# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIw...


Gitlab SSH Key 등록

gitlab에 로그인후 특정 프로젝트 저장소를 접근하게 되면, 아래와 같이 ssh key를 적용할수 있다는 메시지가 노출된다. 

"You won't be able to pull or push project code via SSH until you add an SSH key to your profile"

1. 방금전 로컬에서 생성했던 SSH Key 를 Gitlab 으로 등록하면 된다.

\


2. 오른쪽 상단의 개인화 메뉴 User > Settings >SSH Keys 로 접근한다.


3. 로컬에서 생성된 SSH Key는 다음입력란으로 등록 후 Add key 버큰을 클릭하여 생성한다.


4. 이후 별도 인증없이 Commit & Push 등 Git 명령어 및 상호작용이 가능하다.