지난 글에 git token을 캐싱해서 매번 입력하지 않도록 설정을 바꿔보았다. 그러나 github actions로 쉘 스크립트를 실행하는 중에 문제가 생겼다. 따라서 github 접속 방법을 https에서 ssh로 바꿔보려고 한다.
ssh-keygen
로컬에서 실행해도 되고, 서버(EC2)에서 직접 실행해도 된다.
딱히 설정할 것이 없다면 그냥 엔터만 쳐주면 된다.
[Settings] > [SSH and GPG keys]
Title은 구분 가능한 이름, key는 아까 생성한 공개키(id_rsa.pub
)을 등록해주면 된다.
우선 config 파일 작성에 앞서 비밀키를 서버에 위치시켜야 한다.
서버에서 직접 생성했다면 ~/.ssh/id_rsa
로 생성되어 있을 것이다.
읽기 권한을 read-only로 수정한다.
sudo chmod 400 id_rsa
~/.ssh/config
파일에 비밀키 위치를 작성해준다. 이미 존재한다면 뒤에 덧붙이면 된다.
Host github.com
IdentityFile ~/.ssh/id_rsa
만약 clone 받기 전이라면, https가 아닌 ssh를 사용하면 된다.
git clone git@github.com:USERNAME/REPOSITORY.git
이미 clone 받은 레포라면 pull, push 등을 할 때 사용하는 URL이 설정 파일에 들어 있을 것이다.
ssh방식으로 바꾸고 싶다면 아래 명령어를 실행하면 된다.
git remote set-url origin git@github.com:USERNAME/REPOSITORY.git
이후 git pull
을 해보면 fingerprint를 등록할거냐고 묻고, 여기서 yes를 하면 pull이 되는 모습을 볼 수 있다.