Git이 GitHub 사용자 이름과 비밀번호를 묻지 않도록하려면 어떻게해야합니까?


169

나는 GitHub에서 repo와 일하고 있으며 무언가를 푸시하려고 할 때마다 GitHub 사용자 이름과 비밀번호를 묻습니다. 나는 그것을하고 싶지 않습니다.

Git 에서 이메일설정 하는 방법 , 즉 Git 변수 github.user 및 github.token을 설정하는 데 시도했지만 아무런 차이가 없었습니다.

왜 이런 일이 일어나고 있는지 이해할 수 없습니다.


당신은 암호를 캐시해야합니다 : help.github.com/articles/set-up-git#password-caching
Piotr Usewicz

답변:


31

한 번만 인증하면되는 ssh-agent를 설정해야합니다. 하우투에 대해서는 이 답변 을 참조하십시오 .


1
그러나이 솔루션은 ssh-family 구문을위한 것입니다. 문제는 git이 "git push"를 사용하여 ssh-agent를 트리거하지 않는다는 것입니다. (나는 이미 이것을 했으므로 작동하지 않는다는 것을 안다.)
picardo

2
@ picardo : 나는 이것을했고 실제로 작동합니다.
Daenyth

213

오늘 비슷한 문제가 발생했습니다. 작업 사본에서 문제가 발생했기 때문에 디렉토리의 이름을 바꾸고 github에서 프로젝트를 다시 복제하기로 결정했습니다. 그러나 그렇게 한 후에 암호를 입력하여 풀 / 푸시 요청을 수행해야했습니다.

오늘은 https 프로토콜을 사용하여 프로젝트를 복제했기 때문입니다! 사용중인 프로토콜을 확인하려면 실행하십시오.

git config -l

'remote.origin.url'로 시작하는 줄을보십시오.

프로토콜을 전환하려면

git config remote.origin.url git@github.com:the_repository_username/your_project.git

the_repository_usernameyour_project적절한 저장소의 이름과 그 저장소의 소유자로 교체해야합니다. 저장소를 소유 한 경우 사용자 이름이되고 그렇지 않으면 저장소 소유자의 사용자 이름이됩니다.


5
그것은 나를 위해 일했다. 한 가지는 URL에 내 사용자 이름이 아니라 github에 표시된 repo 주소를 포함한다는 것입니다.git@github.com:some-user/repo-name.git
B Seven

1
참고 : Google에서 나를 데려 왔습니다. 나는 remote.origin.urlhttps 메소드로 설정했고 httpsvs ssh메소드 가 있음조차 알지 못했습니다 . 이 URL을 통해 명백한 내용을 확인할 수 있었습니다
Chris K

암호도 입력 할 수있는 방법이 있습니까?
zishe

자식 지식이있는 사람들을위한 Q : git config remote.origin.url ...위에서 사용한 것과 다른 것의 차이점은 git remote set-url origin ...무엇입니까?
Daryn

그런 잘못된 원점을 제거하는 방법을 알 수 없었습니다. 대답은 다음과 같습니다.git remote rm origin
Vacilando

30

SSH 대신 HTTPS를 사용하는 경우 다음을 수행 할 수 있습니다.

  1. 로 원격 URL (remote.origin.url)을 찾으십시오.

    git config -l
    

    Sergio Morstabilini 덕분에

  2. 원격 URL은 다음과 같습니다. https : // {USERNAME} @ github.com / {USERNAME} / {REPONAME} .git

  3. 이 명령을 실행하십시오.

    git config remote.origin.url https://{USERNAME}:{PASSWORD}@github.com/{USERNAME}/{REPONAME}.git
    

2
내 사용자 이름 자체에가 포함되어 있습니다 @.
coding_idiot

그러나 그렇지 않은 경우 (이메일을 사용할 필요가 없습니다) 완벽하게 작동합니다! 감사.
Killah

4
사용자 이름에 @이 포함되어 있으면 URL을 인코딩해야합니다. meyerweb.com/eric/tools/dencoder
Tim Bodeit

1
보안상의 이유로 비밀번호를 생략해야합니다.
zygimantus

3
암호는 .git/config파일 안에 일반 텍스트로 저장 됩니다!
Amro

26

HTTPS를 사용하는 것을 선호하는데, ssh 키를 설정하는 것보다 쉽고 안전합니다.

HTTPS를 사용하면 다음과 같이 git이 github 리모컨의 사용자 이름을 묻는 것을 방지 할 수 있습니다.

git config --global url."https://yourusername@github.com".insteadOf "https://github.com"

그리고 최소한 git이 암호를 요구하는 빈도를 다음과 같이 줄일 수 있습니다.

git config --global credential.helper 'cache --timeout=28800'

28800은 8 시간입니다. 근무일을 시작할 때이 설정을 사용하여 비밀번호를 한 번만 입력합니다.

그 후에는 이러한 항목을 ~/.gitconfig

[url "https://yourusername@github.com"]
    insteadOf = https://github.com

[credential]
    helper = cache --timeout=28800

출처:

http://git-scm.com/docs/git-credential-cache

http://git-scm.com/docs/git-config


6

github에 대해 ssh 키를 설정할 때 기본 키가 아닌 경우 섹션을 추가해야합니다. ~/.ssh/config

Host *github.com
    User git
    IdentityFile ~/.ssh/github_id_rsa

6

HTTPS를 사용하여 Windows를 사용하는 경우 Git 자격 증명 저장소를 사용해보십시오 . Windows 자격 증명 저장소를 사용하여 이름과 암호를 보유합니다.

Windows Credential Store for Git
This application is a small helper app designed to follow the 
git credentials API as defined by the Git Documentation.

Installation
1. Download the git-credential-winstore.exe application
2. Run it! If you have GIT in your PATH, it should just work.

다음에 이름과 암호를 입력하면 기억해 두게됩니다.


1
고맙습니다. 프로젝트 이름이 Git-Credential-Manager-for-Windows 로 바뀌 었습니다 .
Michael S.

5

또한 사용자 이름이 아닌 암호를 입력하라는 메시지가 항상 표시되도록하려면 사용자 이름으로 원격으로 HTTPS를 구성하십시오.

git config remote.origin.url https://USERNAME@github.com/repo_owner/repo_name

그 후에는 매번 비밀번호를 입력하라는 메시지가 표시되지만 사용자 이름은 입력하지 않습니다.

세계와 공유하기 전에 github 비밀번호를 입력해야하기 때문에 선호하는 방법입니다.


2

내가 2 단계 인증을 사용하는 경우 상황이 약간 다릅니다. 다른 곳에서 좋은 대답을 찾지 못했기 때문에 나중에 찾을 수 있도록 여기에 하나를 붙일 것입니다.

2 단계 인증을 사용하는 경우 사용자 이름 / 암호를 지정해도 이벤트가 작동하지 않습니다. 액세스가 거부됩니다. 그러나 응용 프로그램 액세스 토큰을 사용하고 git의 자격 증명 도우미를 사용하여 캐시 할 수 있습니다. 관련 링크는 다음과 같습니다.

그리고 나는 이것을 어디에서 보았는지 기억하지 못하지만 사용자 이름을 물을 때 응용 프로그램 액세스 토큰을 사용하는 곳입니다. 그런 다음 암호를 비워 두십시오. 내 맥에서 일했다.


2

SSH 사용

푸시하는 동안 GitHub가 비밀번호를 요구하지 않게하려면 HTTPS URL ( ) 대신 SSH ( git@github.com:...)를 사용 https://github.com/...하고 SSH 키를 GitHub 계정에 추가해야합니다 . 참조 : 어떤 원격 URL을 사용해야합니까?

GitHub-SSH를 사용한 복제

자격 증명 도우미

그렇지 않으면 Git에 GitHub 비밀번호캐시 하기 위해 HTTPS를 정말로 사용해야하는 경우 자격 증명 도우미 를 사용 하여 GitHub와 대화 할 때마다 GitHub 사용자 이름과 비밀번호를 기억하도록 Git에 지시해야합니다.

  • 맥 : git config --global credential.helper osxkeychain( osxkeychain helper필수),
  • 윈도우 : git config --global credential.helper wincred
  • 리눅스 및 기타 : git config --global credential.helper cache

.netrc

또 다른 방법은 ~/.netrc( _netrcWindows의 경우)에 사용자 / 암호 구성을 사용하는 것입니다.

machine github.com
login USERNAME
password PASSWORD

OAuth

를 사용 하여 OAuth 토큰 ( 개인 API 토큰 ) 변경을 추진, 예를 들어,

git push https://4UTHT0KEN@github.com/foo/bar

관련 :


1

또한 Windows를 사용하는 경우 다음을 사용할 수 있습니다.

$ git config --global credential.helper wincred

한 번 더 로그인하면 git이 기억합니다.


1

사용자 이름을 묻는 것은 나에게 성가신 일이지만 암호를 묻는 것은 변경 사항을 공개적으로 알리고 싶기 때문에 좋습니다 ...

그래서 저는 이것을 ".gitconfig"에 추가합니다

[url "https://myusername@github.com"]
    insteadOf = https://github.com

0

Windows 를 사용중인 경우 Windows 용 Git Credential Manager를 사용하십시오 .

이 프로젝트에는 다음 이 포함됩니다 .

  • Windows 자격 증명 저장소의 보안 암호 저장소
  • Visual Studio Team Services에 대한 다단계 인증 지원
  • GitHub에 대한 2 단계 인증 지원
  • Visual Studio Team Services 및 GitHub에 대한 개인 액세스 토큰 생성 및 사용 지원
  • Azure Directory가 지원하는 Visual Studio Team Services에 대한 비 대화식 모드 지원
  • Team Foundation Server에 대한 Kerberos 인증
  • 빌드 에이전트 최적화를위한 선택적 설정

간단하게 최신 버전을 다운로드 하여 설치합니다.

사용하는 방법

당신은하지 않습니다. 그것은 마술 자격 증명이 필요할 때 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.