새 리포지토리에 대해 https가 아닌 ssh로 기본 설정하려면 어떻게 해야 합니까?
요즘 설정 페이지에서 GitHub에 새 리포지토리를 만들면 다음과 같은 메시지가 나타납니다.
git remote add origin https://github.com/nikhilbhardwaj/abc.git
git push -u origin master
그리고 커밋을 푸시할 때마다 GitHub 사용자 이름과 암호를 입력해야 합니다.
수동으로 변경할 수 있습니다.
git@github.com:nikhilbhardwaj/abc.git
에서.git/config
나는 이것이 매우 짜증나는 일이라고 생각합니다. 기본적으로 SSH를 사용하도록 git을 구성할 수 있는 방법이 있습니까?
리포지토리의 오리진 분기를 SSH로 설정합니다.
GitHub 저장소 설정 페이지는 제안된 명령 목록일 뿐입니다. GitHub는 이제 HTTPS 프로토콜을 사용할 것을 제안합니다.GitHub의 사이트에 대한 관리자 액세스 권한이 없는 한, 제안된 명령을 변경할 수 있는 방법을 알 수 없습니다.
SSH 프로토콜을 사용하려면 원격 브랜치를 추가하기만 하면 됩니다(즉, GitHub의 제안된 명령 대신 이 명령을 사용합니다).기존 분기를 수정하려면 다음 섹션을 참조하십시오.
$ git remote add origin git@github.com:nikhilbhardwaj/abc.git
기존 리포지토리 수정
이미 알고 있듯이 기존 리포지토리를 HTTPS 대신 SSH를 사용하도록 전환하려면 원격 URL을.git/config
파일.
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
-url = https://github.com/nikhilbhardwaj/abc.git
+url = git@github.com:nikhilbhardwaj/abc.git
바로 가기는 다음을 사용하는 것입니다.set-url
명령:
$ git remote set-url origin git@github.com:nikhilbhardwaj/abc.git
SSH-HTTPS 스위치에 대한 자세한 정보
- "Git는 왜 항상 내 비밀번호를 요구합니까?" - GitHub 도움말 페이지
- GitHub의 스마트 HTTP 전환 - 관련 스택 오버플로 질문
- 손목 친화적인 Git 사용을 위한 자격 증명 캐싱 - GitHub 블로그 게시물 HTTPS 및 암호 재입력 방지 방법
깃헙
git config --global url.ssh://git@github.com/.insteadOf https://github.com/
비트 버킷
git config --global url.ssh://git@bitbucket.org/.insteadOf https://bitbucket.org/
GitHub/BitBucket에 연결할 때는 항상 HTTPS 대신 SSH를 사용하도록 GitHub/BitBucket에 지시하므로 암호를 묻는 메시지가 표시되지 않고 기본적으로 인증서로 인증됩니다.
그러나 여기에 직접 추가할 수 있는 내용이 있습니다..gitconfig
:
# Enforce SSH
[url "ssh://git@github.com/"]
insteadOf = https://github.com/
[url "ssh://git@gitlab.com/"]
insteadOf = https://gitlab.com/
[url "ssh://git@bitbucket.org/"]
insteadOf = https://bitbucket.org/
https가 아닌 ssh에서 복제해야 합니다.
$ ssh-keygen -t ed25519 -C "your_email@example.com"
내용 추가~/.ssh/id_rsa.pub
github.com 의 SSH 키로 이동합니다.
서로 다른 호스트에 대해 별도의 키가 필요한 경우 다음 스크립트를 사용할 수 있습니다.
#!/usr/bin/env bash
if [ $# -lt 2 ]; then
echo "Provide email and hostname"
exit 1
fi
email="$1"
hostname="$2"
keypath="$HOME/.ssh/${hostname}_rsa"
ssh-keygen -t ed25519 -C $email -f $keypath
if [ ! $? -eq 0 ]; then
echo "Error when running ssh-keygen"
exit 1
fi
exit 0
cat >> $HOME/.ssh/config <<EOF
Host $hostname
Hostname $hostname *.$hostname
User git
IdentitiesOnly yes
IdentityFile $keypath
EOF
그리고 그것을 실행합니다.
bash generate_ssh.sh your_email@example.com github.com
원격 URL 변경
git remote set-url origin git@github.com:user/foo.git
(또는 그냥 편집).git/config
)
내용 추가~/.ssh/github.com_rsa.pub
github.com 의 SSH 키로 이동합니다.
연결 확인
ssh -T git@github.com
SSH 파일
~/.ssh/config file
Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
LogLevel QUIET
ConnectTimeout=10
Host github.com
User git
AddKeystoAgent yes
UseKeychain yes
Identityfile ~/github_rsa
reponname/.git/config 편집
[remote "origin"]
url = git@github.com:username/repo.git
실수로 ssh 대신 https에서 저장소를 복제했을 수 있습니다.저는 github에서 이런 실수를 수없이 했습니다.복제 시 https 링크 대신 ssh 링크를 복사해야 합니다.
참고로 - github이 더 이상 ssh를 허용하지 않기 때문에 이를 사용합니다.
[url "git@github.com:"]
insteadOf = https://github.com/
[url "git@gist.github.com:"]
insteadOf = https://gist.github.com/
여기에 있는 다른 대답들은 명목상의 질문에 직접적으로 대답하는 반면에 (나는 그것이 가능한지 몰랐던 방식으로)새로운 것이 생길 때까지git
으로 회전하는 것에 !) 자동 보정정설보정▁!▁autom설정https
을 둔원을격반에로 변환합니다.git+ssh
첫째, 처음부터 이 "옳은" 것을 하는 "정상적인" 방법은 주지 않는 것입니다.git
그자리의 https
url.
와 함께)에는 항상 깃허브( Hub)가 제공하는 을 확인할 수이 있습니다.git
복제해야 합니다.은 작은 : 은을 "SSH" 버하만하됩니다면작.
새 프로젝트에 대한 대안
"SSH" 옵션을 선택하면 GitHub(및 기타)는 로그인한 동안 기억하고 나중에 기본값으로 설정합니다.
Gitlab을 사용하는 경우
git remote -v
당신은 아마도 같은 것을 볼 것입니다.
https://gitlab.king.com/knight/squire.git
그냥 왕, 기사, 대지주를 당신의 것으로 대체하세요.Knight/Squire는 우리의 프로젝트가 서로 다른 디렉토리를 가지고 있는 방식입니다. 그러면 당신은 갈 수 있습니다.
git remote set-url origin ssh://git@gitlab.king.com/knight/squire.git
git pull 또는 무엇이든 당신의 천재성을 즐기세요.
언급URL : https://stackoverflow.com/questions/11200237/how-do-i-get-git-to-default-to-ssh-and-not-https-for-new-repositories
'programing' 카테고리의 다른 글
충돌하는 Gitrebase의 중간에서 "그들의" 변화를 얻는 방법은 무엇입니까? (0) | 2023.05.18 |
---|---|
angular2의 입력을 비활성화하는 방법 (0) | 2023.05.13 |
[Serializable]이란 무엇이며 언제 사용해야 합니까? (0) | 2023.05.13 |
MongoDB collection.find()에 대한 콜백을 받는 방법 (0) | 2023.05.13 |
일부 문자열로 접히는 hrefend 선택 (0) | 2023.05.13 |