https://saiba-midori.tistory.com/9 에서 이어진다.
위의 것은, WSL2의 터미널상에서 push하기 위함이었지만
WSL2의 VSCode가 아닌, Windows의 VSCode에서, gitkraken으로 무지성 push를 하기 위해서는 MINGW64를 건드려야 한다.
왜냐하면 Windows의 VSCode의 git은 MINGW64의 git 발사대에 불과하니까.
(필요성: C# Linter를 WSL2의 VSCode에 또다시 따로 설정하자니 귀찮다.
작업장소로는 그냥 Windows에 이미 setup된 C# Linter를 사용하면서도 push할때도 고민없이 VSCode상에서 딸깍해서 git push하고싶었다.)
먼저 global을 설정한다. 이게 있어야 일단 커밋이 된다.
MINGW상에서,
git config --local user.name hanaokaDev
git config --local user.email hanaoka2481@gmail.com
해주자.
그러면 commit은 되지만, 이제 push가 안될 것이다.
cd ~
mkdir .ssh
cd .ssh
ssh-keygen -t rsa
(엔터 갈기기)
mv id_rsa id_rsa_hanaoka
mv id_rsa.pub id_rsa_hanaoka.pub
cat id_rsa_hanaoka.pub
(복붙으로 git에 ssh pub키 등록하기)
vim ~/.ssh/config
# 적기
Host github.com-hanaokaDev
HostName github.com
User user
IdentitiesOnly=yes
PreferredAuthentications publickey
PasswordAuthentication no
# BASH
IdentityFile ~/.ssh/id_rsa_hanaoka
# 레포의 .git/config 확인용
cat ./myZombieSurvivor/.git/config
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
ignorecase = true
[remote "origin"]
url = git@github.com-hanaokaDev:hanaokaDev/myZombieSurvivor2.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
Host 우측에 github.com 있길래,
지레짐작하고 HostName github.com 빼먹어서, 시간 1시간이나 날렸다. 아아아ㅏ 화난다.
아무튼, 이렇게 하면.
$ssh -T git@github.com:hanaokaDev
ssh: Could not resolve hostname github.com:hanaokaDev: Name or service not known
$ ssh -T git@github.com
git@github.com: Permission denied (publickey).
$ ssh -T git@github.com-hanaokaDev
Hi hanaokaDev! You've successfully authenticated, but GitHub does not provide shell access.
github.com의 -hanaokaDev를 붙였을 시에만, 딱 알맞는 id_rsa_hanaoka 개인키를 가지고 시도함을 확인할 수 있다.
참고) 앞선 포스트에서 말했다시피, git clone할 때, .com 과 :{git계정명} 사이에 -asdfasdfasdf 를 끼워넣으면, .git/config의 remote에 해당 -asdfasdfasdf 의 postfix가 그대로 붙는다.
훌륭하게 commit 이후 push까지 되는것을 확인할수있다.
주저리
windows 에서는 셋업 너무 귀찮아 젠장...무슨 MINGW까지 끌어다쓰냐.
그냥 native terminal의 git만 딸깍하면 끝나는 UNIX가 답이다.
뭐 그래도 배웠으니까 한잔해
여담
그냥 Bash 애뮬레이터라서 당연히 gcc 있을줄알았는데,
MINGW64에 기본 gcc가 없다는거에 놀랐다.
그 이후, MINGW64에 apt-get 이 없다는거에 2번 놀랐다.
gcc 같은 native/external library를 설치하려면 Windows에 다운받은 후, MINGW에 넣기위해 pacman이라는걸 써야하는듯하다.
일단 참고하려고 링크만 달아놓는다.
지피티 형님 답변
각각의 Repository가 서로 다른 public key를 사용하도록 설정하는 것은 여러 가지 장점을 제공합니다:
1. 보안 강화
키 분리: 각 Repository에 대해 별도의 키를 사용하면, 하나의 키가 유출되더라도 다른 Repository에 영향을 미치지 않습니다.
접근 제어: 특정 키에 대해 특정 Repository에만 접근 권한을 부여할 수 있어, 권한 관리를 세밀하게 할 수 있습니다.
2. 관리 용이성
키 관리: 여러 키를 사용하면, 각 키의 사용 용도를 명확히 구분할 수 있어 관리가 용이합니다.
키 교체: 특정 키를 교체해야 할 경우, 해당 키를 사용하는 Repository만 영향을 받으므로, 전체 시스템에 미치는 영향을 최소화할 수 있습니다.
3. 감사 및 추적
활동 추적: 각 키에 대해 별도의 활동 로그를 남길 수 있어, 어떤 키가 어떤 작업을 수행했는지 추적하기 쉽습니다.
문제 해결: 특정 키와 관련된 문제를 더 쉽게 식별하고 해결할 수 있습니다.
설정 예시
.ssh/config 파일에서 각 Repository에 대해 별도의 키를 설정할 수 있습니다:
Host github.com-repo1
User git
HostName github.com
IdentityFile ~/.ssh/id_rsa_repo1
Host github.com-repo2
User git
HostName github.com
IdentityFile ~/.ssh/id_rsa_repo2
각 Repository의 config 파일에서 원격 URL을 설정합니다:
[remote "origin"]
url = git@github.com-repo1:username/repo1.git
[remote "origin"]
url = git@github.com-repo2:username/repo2.git
이렇게 설정하면, 각 Repository가 서로 다른 SSH 키를 사용하여 git commit 및 git push 작업을 수행할 수 있습니다.
'Development > 개발일지' 카테고리의 다른 글
[JIRA] Github for Jira와 연동 (1) | 2025.01.04 |
---|---|
[개발노트] WSL2 gvim 폰트키우기 (0) | 2024.10.28 |
[개발노트] 다른 이름으로 git push하기 (0) | 2024.10.28 |
[개발노트] WSL 에 gvim 설치하기 (0) | 2024.10.12 |
[개발노트] 로컬에 git 계정 여러개 사용하기 (2) | 2024.10.12 |