외장_하드
외장하드
외장_하드
전체 방문자
오늘
어제
  • 분류 전체보기 (419)
    • 국내 여행 (197)
      • 수도권 (20)
      • 충청도 (17)
      • 강원도 (32)
      • 전라도 (21)
      • 경상도 (50)
      • 제주도 (57)
      • 나들이 (0)
    • 일상 (40)
      • 휴식 (15)
      • 취업 준비 (19)
      • 월간일상 (3)
      • 군생활 (3)
    • 국외 여행 (40)
      • 일주 준비 (4)
      • 중국 (11)
      • 대만 (5)
      • 태국 (20)
    • 취미 (19)
      • 제품 후기 (11)
      • 지식 (8)
    • 자동차 (21)
      • 뉴 그랜저 XG (15)
      • 올 뉴 K3 (5)
    • IT (102)
      • Spring (18)
      • DataBase (11)
      • AWS (22)
      • GIT | github (9)
      • 기타 (23)
      • 머신러닝 | 딥러닝 (8)
      • Tech | Eng (3)
      • Python (2)
      • nodejs (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 부산
  • 후기
  • 방법
  • 코스
  • 설치
  • 추천
  • 강원도
  • aws
  • 주차장
  • 여행
  • 스쿠터
  • 혼자여행
  • 제주도
  • EC2
  • 가성비
  • 전라도
  • 푸켓
  • 카페
  • 뚜벅이
  • 스프링

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
외장_하드

외장하드

[github] git 저장소 비밀번호 없이 push pull clone 하기 / token 입력 없이 명령어 실행 방법 / ssh key 설정
IT/GIT | github

[github] git 저장소 비밀번호 없이 push pull clone 하기 / token 입력 없이 명령어 실행 방법 / ssh key 설정

2023. 7. 26. 12:43
반응형

문제점

문제점이라고 할 것 까지는 없을 것 같긴한데.. 불편한점이 있다..라이트세일/EC2 서버에 git 저장소와 연동한 이후 git 명령어를 수행할 때 마다 비밀번호를 입력하라고 하는 것.. 후... 내가 쓰는 그냥 비밀번호면 참아볼만한데.. 외울수도 없는 token 으로 된 비밀번호를 입력하라고하니 원.. 매번 어디다 적어뒀던 토큰을 복사해서 입력하고 있는데.. 이 인증을 계속하고 싶지 않단 생각이 들었다. 방법을 찾아보니 ssh key 를 샐성하여 세팅하면 ID/PW 인증 없이 접속이 가능하다고하여 그 방법을 알아보자.

실행 환경

  • 라이트세일 우분투 리눅스 서버
  • mac 환경 원격 터미널 접속

SSH key 생성

.ssh 폴더 이동

cd .ssh

라이트세일 우분투 서버기준으로 홈디렉토리(~) 하위에  .ssh 폴더에 SSH key 관련 파일들이 있다. 이동해주자.

key 생성

ssh-kegen -t rsa -b 4096 -C "email@example.com github repo key"
  • -t rsa
    • 생성할 키의 유형을 지정하며, 여기서 RSA 알고리즘을 사용하여 키를 생성
  • -b 4096
    • 생성할 키의 비트수를 지정하며, RSA 알고리즘의 경우 키의 비트 수가 클수록 보안 수전이 높아지며 보통 4096을 사용
  • -C "email@example.com github repo key"
    •  생성할 키에 주석(comment) 를 추가하며, 어떤 사용자가 추가했는지를 입력한다. 필수는 아니다.

  • Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa)

명령어를 입력하면 위 메시지가 출력된다. 기본 위치에 키를 저장할꺼냐는 물음인데 Enter 를 눌러주자. (만약 특정 경로에 저장할꺼면 해당 물음에 절대경로를 입력하면 된다.)

  • Enter passphrase (empy for no passphrase)

ssh key 에 비밀번호를 정하라는 말인데, git 자동 로그인을 하려면 비밀번호가 없어야한다. 그냥 Enter 를 눌러주자. 그리고 또한번 입력하라는데 이때도 Enter 를 눌러주면 된다.

이렇게 총 세번 엔터를 눌러 명령어가 끝나면 위처럼 키가 생성된다.

생성 key 확인

ll # or ls -al

다시 ll 명령어를 입력해 확인해보면 아래 두 파일이 생성 된 것을 확인 할  수 있다.

  • id_rsa (개인키) > 외부로 유출되면 안된다.
  • id_rsa.pub (공개키)

key 등록

ssh-add ~/.ssh/id_rsa

Identity added 메시지가 나오며 ssh-agent 에 생성된 키가 등록된다.

github SSH key 등록

이제 내 git 계정에 생성된 key를 등록해야한다. 위 사진을 참고해서 등록 메뉴에 진입하자.

  • git 로그인 > Settings > SSH and GPG keys > New SSH key

 

  • Title
    • 내가 식별 할 수 있는 이름으로 대출 설정해주자.
  • Key Type
    • Authentication Key 를 선택해주자.
  • Key
    • 가장 중요한 부분이다. 우리가 아까 SSH key 를 생성하고 받은 id_rsa.pub 의 내용을 넣으면 된다. 해당 내용을 보는법을 아래를 참고하면 된다.

id_rsa.pub 보기

cat id_rsa.pub

 

id_rsa.pub 파일이 있는 위치에서 위 명령어를 입력하면 key 가 나온다. 이걸 입력해주자.

최종적으로 이런 상태에서 Add SSH key 를 눌러주자.

등록 완료

이런식으로 등록이 완료된다.

git 저장소 SSH 연동

자 이제 내 git 계정과 내 서버에서 생성한 ssh key 를 등록했으니, 이 key 를 이용해서 다시 저장소를 연결하면 끝난다.

ssh 접속 주소 확인

내 git 프로젝트 홈 화면에서 code 부분을 누른 후 SSH 탭으로 진입하면 ssh 접속 주소를 복사 할 수 있다. 이 주소를 복사하자.

기존 https 연결 삭제

나는 기존에 https 프로토콜로 git 저장소 연결을 한번 했기때문에 기존 연결정보를 지워야한다. 만약 기존 연결한 저장소가 없다면 이 단계는 pass 해도 된다. .git 파일이 있는 git 프로젝트 폴더로 가서 아래 명령어를 수행해주자.

git remote show # 현재 원격 저장소 연결 확인
git remote remove origin # 원격 저장소 연결 삭제

이렇게 수행하면 git remote show 명령을 통해 기존 https 방식으로 연결된 origin 저장소를 확인 할 수 있고, 이 연결 정보를 지웠다.

SSH 연결 추가

git remote add origin git@github.com:[계정명]/[저장소명].git

그다음 git remote add origin {아까 복사한 SSH 접속정보} 를 입력하면 연결이 된다. 그리고 최종적으로 git remote show 를 입력해보면 다시 origin이 추가된 것을 볼 수 있다. 이제 git 저장소 연결시 기본적으로 서버에서 동작하고있는 ssh agent 에 의해 우리가 등록한 키가 여기 등록됐고, 이 공개키를 github 설정에 등록해놓았길래 우리가 추가로 PW 입력작업 없이 인증을 수행하게 된다.

결과

기존에 PW가 필요했던 인증이 필요한 명령어를 수행하면 위처럼 나온다. github에 ssh 로 연결 할꺼냐는건데 yes 를 입력해주면 된다. 그리고나서 명령어가 정상 수행된 것을 볼 수 있다.

다시 인증이 필요한 명령어를 입력했을 때 계정정보를 묻지 않는 것을 볼 수 있다. 동일하게 다른 프로젝트들도 이를 반영해주면 된다.

반응형
저작자표시 비영리 변경금지 (새창열림)

'IT > GIT | github' 카테고리의 다른 글

[라이트세일/EC2] git 저장소에 반영한 커밋내용 연동된 우분투 리눅스 서버 저장소에 최신화하여 반영하기  (0) 2023.07.23
[Mac 환경설정] 라이트세일/EC2 우분투 리눅스 서버에 git 저장소 연동하기  (0) 2023.07.22
[Mac 환경설정] git clone 로그인시 fatal: Autentication failed for 오류 해결하기 / 비밀번호 token 생성  (0) 2023.07.22
[GIT/GITHUB] #5 이클립스 스프링 프로젝트 로컬 저장소 버전으로 복원하기 / 이전으로 복구하기 / 되돌리기  (0) 2020.05.31
[GIT/GITHUB] #4 이클립스 스프링 프로젝트 깃허브 원격저장소에 올리기 / 소스 Commit / 로컬저장소  (0) 2020.05.30
    'IT/GIT | github' 카테고리의 다른 글
    • [라이트세일/EC2] git 저장소에 반영한 커밋내용 연동된 우분투 리눅스 서버 저장소에 최신화하여 반영하기
    • [Mac 환경설정] 라이트세일/EC2 우분투 리눅스 서버에 git 저장소 연동하기
    • [Mac 환경설정] git clone 로그인시 fatal: Autentication failed for 오류 해결하기 / 비밀번호 token 생성
    • [GIT/GITHUB] #5 이클립스 스프링 프로젝트 로컬 저장소 버전으로 복원하기 / 이전으로 복구하기 / 되돌리기
    외장_하드
    외장_하드
    자동차 / 여행 / 취업 / 일상 / IT / 코딩

    티스토리툴바