내 키는 ~/.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로 변경하여 변경할 수 있습니다.
한 가지 옵션은 기존 저장소의 이름을 바꾸거나 삭제한 다음 다른 방법을 사용하여 이를 "다시 복제"하는 것입니다. 따라서 현재 저장소를 mv
ing하거나 rm -r
ing한 후 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 = true
SSH에 추가
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>