programing

새 리포지토리에 대해 https가 아닌 ssh로 기본 설정하려면 어떻게 해야 합니까?

padding 2023. 5. 13. 09:16
반응형

새 리포지토리에 대해 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 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에 지시하므로 암호를 묻는 메시지가 표시되지 않고 기본적으로 인증서로 인증됩니다.

Trevor가 제공한 응답은 정확합니다.

그러나 여기에 직접 추가할 수 있는 내용이 있습니다..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.pubgithub.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.pubgithub.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그자리의 httpsurl.

와 함께)에는 항상 깃허브( Hub)가 제공하는 을 확인할 수이 있습니다.git복제해야 합니다.은 작은 : 은을 "SSH" 버하만하됩니다면작.

기존 프로젝트의 SSH URL 가져오기 예제

새 프로젝트에 대한 대안

새 프로젝트의 SSH URL 가져오기 예제

"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

반응형