반응형
HTTPS로 github clone 받는 사람 손절하셈~~!!!
다음 TIL : tailwind 꼭 써야 되는 상황.... ㄷ
(이 내용은 필자의 생각이며 잘 못 된 부분이나 개인적인 의견이
있다면 자유롭게 댓글 달아줘)
✔️ Summary
- 왜 여러개의 계정을 SSH로 등록해야 하는지
- ssh-keygen이란???
- ssh key-gen 적용
- git clone 잘 되는지 확인
✔️ 왜 여러개의 계정을 SSH로 등록해야 하는지
💡 ssh 로 접근 불가한 서버인지 먼저 확인해야 됨
적용 가능한 상황
- 회사에서 몰래 개인 프로젝트를 하고 싶을 때
- 아이디 비밀번호를 push할 때마다 적는게 귀찮을 때
알아야 할 네트워크 지식 (HTTPS vs SSH 프로토콜)
HTTPS 프로토콜
- HTTP의 암호화된 버전
- 브라우저와 액세스 중인 웹사이트를 호스팅하는 서버 간에 데이터가 교환되는 프로토콜
- SSL/TLS 인증서를 사용하여 교환되는 데이터를 암호화하여 인터넷을 통한 보안 통신을 보장
SSH 프로토콜
- 보안되지 않은 네트워크를 통한 보안 통신을 가능하게 하는 암호화 네트워크 프로토콜
- 일반적으로 원격 서버 액세스, 파일 전송 및 네트워크 인프라 관리에 사용
- SSH는 인증을 위해 공개 키 암호화를 사용하고 전송된 데이터에 대한 기밀성과 무결성을 제공
ssh 로 git clone 받는 이유
- https 로 clone 받으면 별도 없이 사용 가능하지만 매번 푸쉬할 때마다 인증을 해야함
- https 는 통신에는 안전하지만 암호 또는 토큰을 입력해야 하므로 보안상 취약함
- https는 SSL/TLS 연결 설정에 따른 추가 오버헤드 때문에 ssh 보다 느릴 수 있음
- ssh는 별도의 키(공개 및 개인 키)를 만들어 인증해야 되지만 이후 설정없이 사용가능합니다.
- https는 표준 포트 443에서 작동하므로 방화벽이나 프록시에서 쉽게 통과 가능합니다.
하지만 ssh 는 22 포트를 사용하기 때문에 차단 될 수 있습니다.
✔️ssh-keygen이란???
정의
- SSH (Secure Shell) 프로토콜을 사용함
- 원격 컴퓨터 간 안전한 셸 세션을 확립하기 위해 다양한 암호학 기법을 사용
- 인증키를 생성, 관리, 변환 가능
- 공개키(Public key), 비공개키(Private key) 제어 가능
- 두 키는 서로 쌍(pair)을 이루고 있음
생성 방식 2가지
ssh-keygen -t rsa -b 4096 -C "github 계정"
ssh-keygen -t ed25519 -C "github 계정" -f "id_ed25519_github_ashappy"
RSA 키 생성:
- 키 타입: RSA
- 비트 수: 4096
- 키 파일 이름: 기본값 (일반적으로 **id_rsa**와 **id_rsa.pub**로 생성됨)
- 설명: RSA 키는 전통적인 방식으로 많이 사용되며, 대부분의 Git 호스팅 서비스에서 지원됩니다.
GitHub도 RSA 키를 지원합니다.
Ed25519 키 생성:
- 키 타입: Ed25519
- 키 파일 이름: id_ed25519_github_ashappy
- 설명: Ed25519 키는 최신 암호화 알고리즘으로 더 강력하고 보안성이 높습니다.
하지만 모든 Git 호스팅 서비스에서 지원하지는 않을 수 있습니다.
GitHub는 Ed25519 키를 지원합니다.
✔️ ssh key-gen 적용
사용하는 과정
keygen 생성하기 (gitlab, github)
ssh-keygen -t rsa -b 4096 -C "github 계정"
ssh-keygen -t rsa -b 4096 -C "gitlab 계정
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Karim/.ssh/id_rsa):hub
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Karim/.ssh/hub
Your public key has been saved in /c/Users/Karim/.ssh/hub.pub
The key fingerprint is:
SHA256:P/PLrFQoFM4iWgLHtH+wzfsvGNlCIFERW2RJvUmpKFc aaa@gmail.com
The key's randomart image is:
+---[RSA 4096]----+
|.o+o+==o.. |
| oo..+Eo+. |
| o.=+.o+o |
| .=o*ooo . |
| .oo.+oS . . |
| .+..o . |
| .+ = |
| .... * |
| .oo.=. |
+----[SHA256]-----+
ssh 에이전트 실행 및 키 등록
//등록
$ eval $(ssh-agent)
Agent pid 3215
//실행
$ ssh-add ~/.ssh/hub
$ ssh-add ~/.ssh/lab
config 설정 파일 등록 및 설정
# config 수정
vi ~/.ssh/config
# config 설정
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/hub <- keygen 이름
Host gitlab.com
HostName gitlab.com
User git
IdentityFile ~/.ssh/lab <- keygen 이름
연결 테스트
$ ssh -T gitlab.com
Welcome to GitLab
$ ssh -T github.com
Hi! You've successfully authenticated, but GitHub does not provide shell access.
문제
gitlab으로 적용한 부분이 연결이 되지 않는다
이유 : ssh 로 접근 불가능한 서버
ssh -Tvv git@git.netand.co.kr
이거 입력시 'ssh: connect to host git.netand.co.kr port 22: Operation timed out'
✔️ git clone 잘 되는지 확인
git repository ssh clone
git@**"config의 설정한 host"**:**git주소**/**Repositories명**.git
계정 초기 등록(나중에 git commit 할 때 이력에 남음)
git config --local user.name "git 이름"
git config --local user.email "git 계정"
참고
여러개 계정 등록
[GitHub] 여러 계정에서 ssh로 git clone 하기
config 설정
반응형
'공부(Study) > 버전관리(Git)' 카테고리의 다른 글
Git이랑 GitHub랑 차이가 뭐임? , Git 파일공간 +상태 +커널 명령어 , 코드 구현해보기 (0) | 2021.08.29 |
---|