내 컴퓨터로 개인 프로젝트를 하면서 회사 업무를 해야하는데, 문제가 있었다.
그래서 ssh-key를 이용해서 ssh 접속을 하는 방식으로 하였다.
# 데스크탑의 루트로 이동한다.
$ cd ~/.ssh
# 현재 디렉토리를 파악한다.
$ ls
known_hosts known_hosts.old
# ssh-key 생성(엔터를 계속 누른다)
ssh-keygen -t rsa -C "{깃허브 이메일 계정}" -f "id_rsa_{이름}"
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_id
Your public key has been saved in id_rsa_id.pub
The key fingerprint is:
# 파일이 생성되었는지 본다.
$ ls
id_rsa_id
id_rsa_id.pub
known_hosts
known_hosts.old
# cat으로 해도 되고, code로 에디터 켜서 해도 된다.
code ~/.ssh/id_rsa_id.pub
cat ~/.ssh/id_rsa_id.pub
중요한점
# 이렇게 하면 에러남
ssh-add ~/.ssh/id_rsa_id
# 이렇게 해야 올바른 키
ssh-add ~/.ssh/id_rsa_id.pub
Key is invalid. You must supply a key in OpenSSH public key format
Pub 파일 말고 위처럼하면 에러가 날 수 있으므로 제대로 넣어야한다.
key에 넣는다.
생성이 완료되었다.
vi config
# config 파일 생성
$ vi config
host가 회사계정이냐, 내 개인계정이냐 구분하는 것이고
IdentityFile 만 생성된걸로 잘 작성해주면 된다.
# 파일 생성되었는지 확인
$ ls
config
참고로 vi로 작성 시 i 를 눌러야 insert 가능
저장 안하고 나가기는 :q!
저장하고 나가기는 :wq!
# 기존 config 확인
$ git config --list
credential.helper=osxkeychain
user.name=jihoon
user.email=jihoon@gmail.com
# 확인
ssh -T -ai ~/.ssh/id_rsa_id git@github.com
Hi jihoon! You've successfully authenticated,
but GitHub does not provide shell access.
정상적으로 등록되었다.
앞으로 clone을 한다면 ssh로 해야한다.
$ git clone git@github.com-user1:user1/저장소명.git
레파지토리 계정을 격리하기
레포별로 로컬 유저 네임, 이메일 설정해주기
* 이과정을 안하면 vscode에서 source control 못함
* local 을 추가해서 프로젝트 별로 다른 유저이름과 email config를 설정할 수 있게 됨
$ git config --local user.name '{id}'
$ git config --local user.email '{이메일}'
아래 과정은 키 권한이 없을때 나타날 수 있는 에러이므로 아래 참고
$ git clone git@github.com:wlgns410/Project.git
Cloning into 'myProject'...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
1. 키 저장을 안했을 경우 아래처럼 pub 키 저장시 에러 발생
$ ssh-add ~/.ssh/id_rsa_id.pub
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/ijihun/.ssh/id_rsa_id.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
2. 키에 권한 permission 권한 부여
$ chmod 400 ~/.ssh/id_rsa_id
3. 마지막으로 아까 config에서 붙였던 work을 붙여서 clone해야함
$ git clone git@github.com-work:wlgns410/Project.git
Cloning into 'Project'...
remote: Enumerating objects: 780, done.
remote: Counting objects: 100% (320/320), done.
remote: Compressing objects: 100% (229/229), done.
remote: Total 780 (delta 136), reused 222 (delta 81), pack-reused 460
Receiving objects: 100% (780/780), 190.94 KiB | 338.00 KiB/s, done.
Resolving deltas: 100% (403/403), done.
드디어 완료!
'git' 카테고리의 다른 글
Github chatGPT Auto CodeReview (0) | 2024.06.02 |
---|---|
Github actions에서 Secrets로 환경변수 관리 (0) | 2024.04.18 |
깃허브 리뷰 코멘트 템플릿 사용하기 (0) | 2023.11.01 |
Fatal: Not possible to fast-forward, aborting / fatal: 정방향이 불가능하므로, 중지합니다. (0) | 2023.07.17 |
git pull 받지않고 원격 저장소의 새 branch 가져오기 (0) | 2023.05.15 |