해당 글은 우분투에서 진행한 내용입니다.
✔ SSH-Key 생성
SSH-Key를 관리하는 디렉터리로 이동 후 생성해 줍니다.
홈 디렉터리 ".ssh" 디렉터리로 이동합니다. ssh 앞에 "."은 숨겨진 파일, 디렉터리에 해당합니다.
만약 디렉터리가 없을 시 생성하고 이동합니다.우분투, 맥의 경우 홈 디렉터리이고 윈도우의 경우 "C:\Users\<username>\user\.ssh" 입니다.
$ cd ~/.ssh
$ ssh-keygen -t rsa -C '깃허브이메일계정'
# 위에 Enter를 하고 나면 아래의 내용이 나온다
# 그러면 만들 rsa 이름 입력. 보통 id_이름_rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/해당 경로/.ssh/id_rsa): id_name_rsa
# 다시 위에 Enter를 하고 나면 아래의 내용이 나온다
# 그냥 Enter 하고 넘어가면 된다
Enter passpharse (empty for no passpharse):
# Enter를 하고 나면 아래의 내용이 나온다
# 다시 확인을 하는데 그냥 Enter 하고 넘어가면 된다
Enter same passpharse again:
그러면 위와 같이 나오고 "ls" 명령어를 실행해 보면 "id_이름_rsa", "id_이름_rsa.pub" 두 개의 파일이 만들어져 있다.
"id_이름_rsa"는 비공개 키이고 "id_이름_rsa.pub"는 공개 키이고 두 개가 한 쌍이다.
깃허브에 연결할 때는 공개 키를 통해 연결한다.
✔ SSH-Key 등록
- 깃허브 사이트로 이동
- 자신의 계정 settings 클릭
- 왼쪽 목록에서 "SSH and GPG keys" 클릭
- SSH keys에서 "New SSH key" 버튼 클릭
- .ssh 디렉터리에 만든 "id_이름_rsa.pub" 파일을 열어서 복사 붙여 넣기
그리고 2번째 계정도 위와 동일하게 진행해 줍니다.
그 뒤에 "~/.ssh" 경로에서 "config" 파일이 없으면 새로 생성해 줍니다.
$ touch config
$ vi config
ssh-key 등록을 안 했던 분들이라면 아마 "config" 파일이 없어서 새로 생성해 주고 안에 내용이 비어있을 겁니다.
아래의 내용을 "config" 파일에 넣어주면 됩니다.
Host github.com-이름
HostName github.com
IdentityFile ~/.ssh/id_이름_rsa
User git
Host github.com-이름
HostName github.com
IdentityFile ~/.ssh/id_이름_rsa
User git
✔ SSH-Agent 등록
$ eval "$(ssh-agent -s)"
# 위의 내용을 Enter 하면 아래의 내용이 출력
Agent pid 숫자
# 아래의 명령어로 User Agent에 등록된 목록 확인
$ ssh-add -l
# 아래의 명령어로 User Agent에 등록
$ ssh-add ~/.ssh/만든rsa파일1
$ ssh-add ~/.ssh/만든rsa파일2
$ ssh-add -l
✔ SSH 연결 테스트
# 이름은 config에 입력했던 이름
$ ssh -T git@github.com-이름
# 위의 내용을 Enter 하면 아래의 내용 출력
# 성공 시
Hi 이름! You've successfully authenticated, but GitHub does not provide shell access.
# 실패 시
The authenticity of host 'github.com (ip)' can't be established.
ED25519 key fingerprint is SHA256:암호내용.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
# 위의 내용은 SSH를 사용하여 깃허브에 처음 연결할 때 발생하는 일반적인 메시지이고
# SSH 클라이언트가 서버의 공개 키를 인식하지 못했을 때 발생합니다
# 일종의 보안 메시지이고, 깃허브 서버가 진짜인지 확인하고 사용자가 의도 한 대상 서버인지 확인하는 것이다
# "yes"을 입력하면 성공 시 내용이 출력된다
이제 앞으로는 git clone 혹은 remote 할 때 HTTPS 대신 SSH로 하면 된다.
$ git remote add origin git@github.com-이름:계정/repository이름.git
$ git clone git@github.com-이름:계정/repository이름.git
🔗 Reference
'Git' 카테고리의 다른 글
Github 패스워드 변경 (0) | 2022.03.07 |
---|
댓글