[TIP] github에 https/ssh push (skip password) :: 행복한 프로그래머

posted by 쁘로그래머 2017.12.19 10:09

github 원격 저장소 서비스에 접근할 때 https or ssh 통신 방식을 사용할 수 있다.


# https vs ssh 방식 비교 

https: git config 명령을 통해 설정을 하면 username/password 입력이 필요 없음

ssh: ssh public key를 등록하면 username/password를 입력이 필요 없음


프로토콜만 다르고, https를 사용하든 ssh를 사용하든 설정을 통해 username/password를 입력이 필요 없음 


아래의 내용은 Ubuntu 16.04에서 테스트하였습니다.


# SSH: ssh public key를 등록하여 username/password 입력 불필요

1. openssh-client 설치

$ apt install openssh-client


2. ssh-keygen 명령으로 ssh key 생성

$ ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): 

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:iItJV3L82xTJ7S7r75aplyJsSpfps8WfW/bUqptkXnE root@dockerdev

The key's randomart image is:

+---[RSA 2048]----+

|                 |

|     .   . o     |

|    . +   + .    |

|     = o   o     |

|  . o . S . . . E|

| . + .   B .   o.|

|  o . ..= = +++ o|

|     . o=..B** + |

|      .oo=+B@+. .|

+----[SHA256]-----+


3. 생성된 ssh public key 확인

$ cat ~/.ssh/id_rsa.pub 

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrj5J/47eqRPe2Li3U++mwduwZTMAfH7Xc6mzYWZCdv+ptmIKWbkEaDwzXMDtt2NEDhUVEksOTbBPOmSZHz5R7leVMHynyW+nfs4mEtoKdA4R/SvuyHEdvqr1jbSh4dWwiF66hu4FB2Hh5VLJP1g1rQzIQrckPnPxDj+qFCD8M2/RZ7gZED8F9euXz1gzVU1CQqkPqRBbWuM25uxrynmVKGaLKsjK1CYsGtNwsK1NVspDhYK3wLtoBWP+Gp0llKCeNoXnhglu1c2ZLIdsSvnBBjmJT0OiJNLR/nS+qFKA6Bq/Sagy98hkWmRdXlKEn6A2+hopwRf74rhGL9M0/n5/L root@dockerdev


4. github에 ssh public key 등록

github에 접속하여 개발 장비의 ssh public key를 등록하는 과정이다.

화살표 따라서 진행하다가 ssh-keygen으로 생성된 ssh public key를 등록하면 된다.

★그림 추가

★그림 추가


5. ssh로 접근하는 경우 (username, password 필요 없음)

$ git remote remove origin

$ git remote add origin git@github.com:jhhwang4195/ssh_access.git

$ git remote -v

$ echo "2" > f2.txt

$ git add f2.txt 

$ git commit -m "add f2.txt file"

$ git push -u origin master

Counting objects: 3, done.

Delta compression using up to 4 threads.

Compressing objects: 100% (2/2), done.

Writing objects: 100% (3/3), 268 bytes | 0 bytes/s, done.

Total 3 (delta 0), reused 0 (delta 0)

To git@github.com:jhhwang4195/ssh_access.git

   939ee1d..11c95f1  master -> master

Branch master set up to track remote branch master from origin.


# HTTPS: git config 명령을 통해 username/password 입력 불필요

1. https로 접근하는 경우 (username, password 입력해야함)

$ git init

$ echo "1" > f1.txt

$ git add f1.txt 

$ git commit -m "first commit"

$ git remote add origin https://github.com/jhhwang4195/ssh_access.git

$ git push -u origin master

Username for 'https://github.com': jhhwang4195

Password for 'https://jhhwang4195@github.com': 

Counting objects: 3, done.

Writing objects: 100% (3/3), 205 bytes | 0 bytes/s, done.

Total 3 (delta 0), reused 0 (delta 0)

To https://github.com/jhhwang4195/ssh_access.git

 * [new branch]      master -> master

Branch master set up to track remote branch master from origin. 



2. git config 명령으로 username/password 입력하지 않고 push/pull 수행하기

$ git config --global credential.helper store

$ .... 작업 ....

$ git push        // user name/password 입력 필요

$ .... 작업 ....

$ git push        // user name/password 입력 불필요


Reference: https://stackoverflow.com/questions/5343068/is-there-a-way-to-skip-password-typing-when-using-https-on-github


※ 참고 사이트 ※

https://opentutorials.org/module/2676/15433


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

저는 IT 기술에 대해 관심이 많고, 기술적인 토론하는 것을 매우 좋아합니다^^

github following 해주시면 정말로 감사하겠습니다^^

github: https://github.com/jhhwang4195


어떠한 댓글이든 환영합니다^^

댓글 좀 달아주세요^^ (구걸 모드) 

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■


이 글이 도움이 되셨다면 아래에 있는 "♡공감" 버튼을 클릭해주세요

댓글을 달아 주세요

  1. Ls 2018.05.04 23:50  Addr  Edit/Del  Reply

    저 혹시 라즈베리파이로도 다루실줄 아시나요?