깃허브를 사용하려면 먼저 OpenSSH 키를 등록해야 한다.
로컬 개발 환경에서 깃을 단독으로 사용한다면 SSH가 없어도 무방하다. ( 지금까지 내가 그랬던 것처럼 )
안전하게 외부 깃 서버에서 코드를 clone하거나 push 하려면 SSH 프로토콜을 사용한다.
SSH
SSH는 "Secure Shell"의 약자로, 네트워크 프로토콜 중 하나이다.
주로 원격으로 다른 컴퓨터에 접속하고 명령을 실행하거나 파일을 전송하는 데 사용된다.
SSH는 네트워크 통신을 암호화하여 보안을 강화하며, 안전한 원격 접속을 가능하게 한다.
SSH는 Git 외에도 주로 리눅스 및 유닉스 시스템에서 사용된다.
공개키 인증 방식
1. 클라이언트의 공개키 생성 : 키 쌍을 생성 ( 공개키 & 비밀키 ), 공개키는 서버에 제공
2. 서버에 공개키 등록 : 클라이언트의 공개키는 원격 서버에 등록된다.
3. 인증 요청 : 클라이언트가 서버에 연결하려고 할때, 클라이언트는 자신의 공개키를 서버에 제공
4. 공개키 검증 : 서버는 클라이언트가 제공한 공개키를 사용하여 클라이언트를 인증한다.
5. 액세스 승인 : 공개키가 서버에 등록된 공개키와 일치하는 경우, 클라이언트는 성공적으로 인증되고 액세스 권한이 부여된다.
위와 같이 사용자의 비밀키를 전송하지 않고도 안전하게 액세스할 수 있도록 해준다.
SSH 공개키와 개인키 만들기
$ ssh-keygen -t ed25519 -C "your_email@example.com"
위 ed25519 방식으로 동작하지 않는 경우에는 RSA 옵션으로 키를 생성한다.
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
키를 만들고 나면,
$ ssh-keygen -t ed25519 -C "kwakprogram@gmail.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/claire/.ssh/id_ed25519):
저장하려는 위치를 물어본다.
SSH 키에 대한 비밀번호를 추가로 설정할 지 물어본다.
나는 없이 사용하고 싶어서 그냥 엔터를 입력해주었다.
나중에 알았지만 GitHub에서는 공식적으로 패스워드 설정을 권장한다고 한다..ㅎ
SSH 키가 생성이 되었다.
개인키는 /Users/claire/.ssh/id_ed25519
공개키는 /Users/claire/.ssh/id_ed25519.pub
에 저장되었다.
$ cat id_ed25519
cat 명령어로 개인키를 출력해보면 키가 잘 생성되었는 지 확인해볼 수 있다.
cat id_ed25519.pub
공개키 출력 명령어 -> 출력된 결과를 GitHub에 등록해주어야 한다.
GitHub에 SSH Key 등록
로그인 후 오른쪽 상단의 프로필을 클릭하고 Settings 메뉴로 이동한다.
사이드 바에서 SSH and GPG keys -> New SSH key
Title 필드에는 등록하려는 키의 이름을 입력한다.
Key 필드에는 앞에서 복사한 공개키 원본 그대로 입력한다.
등록까지 끝 !!