github이 항상 사용자 이름/비밀번호를 묻는 것을 중지하는 방법은 무엇입니까?

github이 항상 사용자 이름/비밀번호를 묻는 것을 중지하는 방법은 무엇입니까?

내 키는 ~/.ssh/다른 컴퓨터에 있으며 관련 저장소에서 푸시하고 풀할 수 있습니다.
한 컴퓨터에서는 항상 내 github 사용자 이름/비밀번호를 입력해야 하지만 다른 컴퓨터에서는 입력하지 말아야 하는 이유는 무엇입니까?

이를 방지하고 SSH 키를 대신 사용하려면 어떻게 해야 합니까?

답변1

가장 쉬운 방법은 ~/.netrc다음 내용으로 파일을 만드는 것입니다.

machine github.com
login YOUR_GITHUB_USERNAME
password YOUR_GITHUB_PASSWORD

(다음과 같습니다: https://gist.github.com/ahoward/2885020)

다음을 입력하여 누구도 귀하의 비밀번호를 읽을 수 없도록 이 파일에 대한 권한을 끌 수도 있습니다.

chmod 600 ~/.netrc

답변2

이는 인증 프로토콜 방법을 https에서 ssh로 변경하여 변경할 수 있습니다.

한 가지 옵션은 기존 저장소의 이름을 바꾸거나 삭제한 다음 다른 방법을 사용하여 이를 "다시 복제"하는 것입니다. 따라서 현재 저장소를 mving하거나 rm -ring한 후 clone 명령은 다음과 같습니다.

git clone [email protected]:user_name/repo_name.git

다음 명령을 사용하면 두 방법의 차이점을 확인할 수 있습니다 git config -l.

https의 경우:

...
remote.origin.url=https://github.com/user_name/repo_name.git
...

SSH의 경우

...
[email protected]:user_name/repo_name.git
branch.master.rebase=true  # This was also created in the ssh method

...

.git/config각 저장소의 파일 차이점을 확인할 수 있습니다.

아래의 "url" 변경 사항을 참고하세요. 게다가 rebase = trueSSH에 추가

http

[core]
  repositoryformatversion = 0 
  filemode = true
  bare = false
  logallrefupdates = true
[remote "origin"]
  url = https://github.com/user_name/repo_name.git
  fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
  remote = origin
  merge = refs/heads/master

SSH

[core]
  repositoryformatversion = 0 
  filemode = true
  bare = false
  logallrefupdates = true
[remote "origin"]
  url = [email protected]:user_name/repo_name.git
  fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
  remote = origin
  merge = refs/heads/master
  rebase = true

따라서 전체 저장소를 "다시 복제"하지 않고 인증 방법만 변경하려면 프로젝트를 편집 .git/config하고 변경하면 됩니다.

  url = [email protected]_name/repo_name.git

도착하다

  url = https://github.com/user_name/repo_name.git

어리석은

rebase = true

하단의 " [branch "master"]" 섹션 에서

답변3

github과 관련하여 이미 ssh를 사용하고 있는지 여부를 지정하지 않았습니다. 아마도 다른 컴퓨터에서는 github 자격 증명이 여러분이 모르는 캐시 어딘가에 저장되어 있을 것입니다(이것은 제가 macos/unix에서 Linux 시스템으로 전환한 경우였습니다).

SSH 유형을 사용하여 리모컨을 설정합니다. 다음 명령을 사용하여 URL 유형을 확인할 수 있습니다.

git remote -v

https 대신 ssh를 사용하도록 원격 저장소의 URL을 변경할 수 있습니다.

HTML URL 대신 https://github.com/username/repo_name

.git 유형 URL을 사용하세요. [이메일 보호됨]:사용자 이름/repo_name.git

다음을 사용하여 변경하세요.

git remote set-url <your_branch_name> <url>

관련 정보