문제점
문제점이라고 할 것 까지는 없을 것 같긴한데.. 불편한점이 있다..라이트세일/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 |