방화벽 문제로 인해 최근에 리포지토리를 GitHub의 https:// 에 동기화하도록 전환했는데, 매번 비밀번호를 묻는 메시지가 표시됩니다.
'깃 푸시'를 할 때마다 인증하는 대신 자격 증명을 캐시할 수 있는 방법이 있나요?
Git 1.7.9(2012년 1월 말 릴리스) 이후, Git에는 자격 증명 도우미라고 하는 HTTP/HTTPS에 대해 항상 비밀번호를 입력할 필요가 없는 깔끔한 메커니즘이 있습니다. (아래 댓글에서 이 새로운 기능을 지적해준 dazonic에게 감사하다.)
Git 1.7.9 이상에서는 다음 자격 증명 도우미 중 하나를 사용할 수 있습니다:
git config --global credential.helper cache
... 이는 Git에 (기본적으로) 15분 동안 비밀번호를 메모리에 캐시하도록 지시합니다. 시간 제한을 더 길게 설정할 수 있습니다:
git config --global credential.helper "cache --timeout=3600"
(이 예는 Linux용 GitHub 도움말 페이지에 나와 있습니다.) 원하는 경우 자격 증명을 영구적으로 저장할 수도 있습니다(아래의 다른 답변을 참조하세요).
GitHub의 도움말에 따르면4 Mac OS X을 사용 중이고 Homebrew를 사용하여 Git을 설치하는 경우, 기본 Mac OS 및 X 키 저장소를 사용할 수 있다고 합니다:
git config --global credential.helper osxkeychain
Windows의 경우, Windows용 Git 자격증명 관리자 또는 msysgit에서 wincred라는 도우미가 있습니다.
git config --global credential.helper wincred # obsolete
Windows용 Git 2.7.3+]8(2016년 3월):
git config --global credential.helper manager
Linux의 경우, gnome-keyring
(또는 KWallet과 같은 다른 키링 구현)을 사용할 수 있습니다.
1.7.9 이전 버전의 Git에서는 이 더 안전한 옵션을 사용할 수 없으며, 이러한 방식으로 비밀번호를 포함하려면 원본
원격에서 사용하는 URL을 변경해야 합니다:
https://you:[email protected]/you/example.git
... 즉, 사용자 아이디 뒤와 @
앞에 :비밀번호
를 넣어야 합니다.
를 사용하여 원본
리모컨의 새 URL을 설정할 수 있습니다:
git config remote.origin.url https://you:[email protected]/you/example.git
반드시 https
를 사용해야 하며, 이렇게 하면 GitHub 비밀번호가 .git
디렉터리에 일반 텍스트로 저장되므로 바람직하지 않다는 점에 유의해야 합니다.
다른 방법은 사용자 이름과 비밀번호를 ~/.netrc
파일에 넣는 것이지만, 원격 URL에 비밀번호를 보관하는 것과 마찬가지로 비밀번호가 디스크에 일반 텍스트로 저장되므로 보안성이 떨어지고 권장되지 않습니다. 하지만 이 방법을 사용하려면 ~/.netrc
에 다음 줄을 추가하세요:
machine <hostname> login <username> password <password>
... 호스트명
을 서버의 호스트명으로 바꾸고 사용자명
과 사용자 비밀번호
를 사용자 이름과 비밀번호로 바꿉니다. 또한 해당 파일에 대한 파일 시스템 권한을 제한적으로 설정하는 것도 잊지 마세요:
chmod 600 ~/.netrc
Windows에서는 이 파일의 이름이 _netrc
여야 하며, %HOME% 환경 변수를 정의해야 할 수도 있습니다(자세한 내용은 여기를 참조하세요):
다음을 사용하여 Git에서 자격 증명을 영구적으로 저장하도록 할 수도 있습니다:
git config credential.helper store
참고: 이 방법이 편리하긴 하지만, Git은 자격 증명을 프로젝트 디렉터리 아래의 로컬 파일( 프로젝트 디렉터리 아래의 로컬 파일(.git-credentials)에 평문으로 저장합니다(아래에서 "홈" 디렉터리 참조). 이 방식이 마음에 들지 않으면 이 파일을 삭제하고 캐시 옵션으로 전환하세요.
Git이 필요할 때마다 자격 증명을 다시 요청하도록 하려면 다음과 같이 하세요. 원격 리포지토리에 연결할 때마다 자격 증명을 다시 요청하도록 하려면 다음 명령을 실행하면 됩니다:
git config --unset credential.helper
프로젝트 디렉터리가 아닌 %HOME%
디렉터리의 .git-credentials
에 비밀번호를 저장하려면: --global
플래그를 사용한다.
git config --global credential.helper store
<! - 모든 언어: > 랑 sh -;
깃 (git) 와 HTTPS 리포지토리를 암호를 저장하는 url 은 '~' (Unix) 또는 '%HOME%/netrc /.netrc 가능한' ('' 기록하십시오) 에 Windows.
그러나 *: 해당 파일 비밀번호를 저장할 수 있는 일반 텍스트.
솔루션 *: 해당 파일을 암호화합니다 1 와 [GPG (GNU 프라이버시 가드)], 필요할 때마다 암호를 해독할 저회가 Git ("에 대한 누름식 '/' '/' '/' 클론 '작업을 당기십시오 페치할).
참고: 깃 (git) 을 통해 2018년 2.18 (Q2 해독하는 데 사용할 수 있습니다), GPG 사용자정의할 이네크 암호화되었습니다 '' 절실해졌습니다.
참조 [커밋합니다 786ef50] (https://github.com/git/git/commit/786ef50a23cbd0e93d1e41982cfaba76801ed885), [커밋합니다 f07eeed] (https://github.com/git/git/commit/f07eeed123b8880b1723b1ea9d6d6f41cfb34532) (12일 5월 2018년) 에서 [루이스 마르사노 (")] (https://github.com/). sup> <; (병합되었습니다 에서 [주니우 캜 하마노 기트스터 '-' -] (https://github.com/gitster) 에서 [커밋합니다 017b7c5] (https://github.com/git/git/commit/017b7c52fc00897c72f6c4808ded43c4c5f9c5b8), 30일 5월 2018년), /sup> <.
>. # 'git 자격증명이 네크': 동의하십시오 gpg '옵션'
>. 'git 자격증명이 네크 & # 39, & # 39 해독할 수 있는' 하드 코드되었습니다 gpg ',' 상관없이 이 제프 조지프로그램 디바이스입니다. 이 같은 문제가 있는 것처럼, & # 39 의 분포를 데비안 호출하십시오 gpg2 '& # 39' 현대 GnuPG something else.
Windows:
(깃 (git) 은 '제프 고드레스' 의 유통, 사용하지만 전체 GPG 설치 등이 외울 수 있는 ',' gpg-agent.exe 너회의 패스프레이즈 연관됨 데이터베이스에구성원을 GPG 키든.)
경로 설정 = %PATH%:C:\path\to\gpg 복제본에 C:\path\to\gpg\gpg.exe C:\path\to\gpg\gpg2.exe
(& # 39, & # 39 ',' 복제본에 기록하십시오 명령: 깃 (git) ',' & # 39 bash 스크립트입니다 필요합니다, & # 39 gpg 명령을 실행합니다. 이후 '에는' it ',' gpg4win 바닐라 2 gpg2.exe 복제할지 합니다.)
키 임포트합니다 제프 조프 -
gen 키 gpg -
(그 키에 대한 패스프레이즈를 넣을 수 있어야 합니다.)
설치 디렉토리에 스크립트입니다 크레덴셜 도우미 '내에서 %PATH%':
cd c:\a\fodler\in\your\path 컬 - o c:\prgs\bin\git-credential-netrc https://raw.githubusercontent.com/git/git/master/contrib/credential/netrc/git-credential-netrc
(예, 이것은 배시 스크립트에 의해 indows 작업할 것 때문에 Git 라는 것입니다.)
a_server.corp.com 머시닝할 a_login 로그인하십시오. 암호란이 a_password https 프로토콜
a_server2.corp.com 머시닝할 a_login2 로그인하십시오. 암호란이 a_password2 https 프로토콜
(Don& # 39, & # 39, & # 39 는 포로토콜 ',' t forget 부품: & # 39, & # 39 ',' http https 또는 & # 39, & # 39 ',' uirl 따라 사용할 수 있습니다.)
e - r a_recipient _netrc gpg
(수 있습니다 삭제 ',' 이 '만' 암호화되었습니다 불신하니 _netrc.gpg _netrc 파일을 계속)
깃 (git) - - - f c:/path/to/_netrc.gpg v" 네크 로컬 크레덴시알.헬퍼 구성용 ";
(# 39, & # 39, '/'& 기록하십시오. # 39 wouldn& C:\path\to. ',' t work at all.) (사용할 수 있습니다 - d '처음' v 알아볼 수 있는 것 같습니다.)
지금부터 깃 (git) 는 http 인증을 필요로 하는 모든 명령을 사용하여 %hsmb uirl 해독할 수 있는 '' 파일이므로 _netrc.gpg 사용합니다를 로그인 / 암호 관련 서버 틀렸다니까 문의처에. 처음 GPG 대한 질문을 통해 GPG 키 암호를 해독할 수 패스프레이즈를 절실해졌습니다. 첫 번째 호출은 GPG 의해 자동으로 실행됨을 gpg 에이전트에는 다른 시간을 제공하는 패스프레이즈 당신꺼에요.
[2]: m, C = O = D http://files.gpg4win.org/Beta/?
https://user:[email protected]/...
Url 을 (를) ', git 원격입니다 url 설정 < remote-repo> 변경할 수 있습니다. 'URL> <;
그러나 이 비밀번호를 저장할 수 있는 일반 텍스트 명백하네 외곽진입 있어야 한다는 것입니다. 그냥 계속 가능합니다 입력하는 번거로움을 반단면 ('https://[email protected]/.') 적어도 절감할 수 있는 것으로 알려졌다.
깃허브 SSH 클라이언트 소프트웨어를 사용하여 전환하십시오 스냅하거나 선호할 수도 있습니다.
그냥 사용할 수 있습니다.
git config credential.helper store
다음에 당기십시오 암호를 입력할 때 이를 통해 파일 또는 누름식 저장됩니까 .git-credentials 일반 텍스트로 (안전하지 않은 것이 아니라 조금 붙여넣습니다 보호된 폴더).
깃 (git) , , 와 x 에 대한 2.11+ os& 빨리 linux를, [use git& # 39 에 내장된 자격증명이 store] [1]:
git config --global credential.helper libsecret
git config --global credential.helper wincred
깃 (git) 에 대한 1.7.9+ os&, nbsp, x 사용:
git config --global credential.helper osxkeychain
[1]: https://stackoverflow.com/questions/13385690/how-to-use-git-with-gnome-keyring-integration +
단순히 로그인시키는 포함시키십시오 증명방식 일부로 URL:
git remote rm origin
git remote add origin https://username:[email protected]/path/to/repo.git
참고: 이 방법을 사용하고, 다른 어떤 것도 바람직하지 나는한다 신앙이니라 서둘러 작동됨, 이 방법을 사용할 수 있습니다.
다음 단계에 따라 깃 (git) 에서 사용할 수 있는 스케쳐내 크레덴셜 캐싱과는 os& x: nbsp;;
이진 다운로드하십시오 git 자격증명이 오스키카린.
아래 명령을 실행할 수 있도록) 는 바이너리 실행 파일:
chmod a+x git-credential-osxkeychain
/ Usr / local / bin 디렉토리에 넣어 ''.
아래 명령을 실행합니다.
git config --global credential.helper osxkeychain
Windows*용 Git 자격증명이 관리자 (그스마) 플러그인을 사용할 수 있습니다. 이 회사는 현재 Microsoft 가 관리하는. 암호를 절감할 수 있다는 것은 훌륭한 Windows 자격증명이 작성하든지 아니라 일반 텍스트.
There is an 설치자는 릴리스에서와 페이지 의 프로젝트. 또한 정식 버전은 장착합니다 Git windows*용 를 자격증명이 관리자에서는 내장현. 따라서 이중 인증 의 깃허브 (및 기타 서버). 그래픽 인터페이스입니다 계시한하나님께 xam 로그인하십시오.
맥 사용자 (또는 사용자 이미 사용하고 있는 Windows 용 공식 깃 (git) 를 선호하는 수작업식 설치할 수 있습니다. Zip 패키지로의 다운로드하십시오 의 릴리스에서와 페이지. 패키지, 푸십시오 실행하십시오 린스탈리스마드 '' 절실해졌습니다. / Bin 폴더를 데이터베이스에구성원을 '~' 이 설치할 계획이다. (반드시 '는' ~ / bin 디렉토리에 사용자의 해당 경로에.) 그런 다음 이 명령을 사용할 수 있습니다.
git config --global credential.helper manager
깃 (git) '는' git-credential-manager.exe 실행하십시오 인증할 때 모든 서버.
마크의 말처럼 비밀번호를 일반 텍스트로 저장하고 싶지 않다면 푸시할 때와 다른 GitHub URL을 가져올 때 사용할 수 있습니다. 구성 파일의 [remote "origin "]
아래에 있습니다:
url = git://github.com/you/projectName.git
pushurl = [email protected]:you/projectName.git
적어도 오픈 소스 프로젝트의 경우 푸시할 때는 여전히 비밀번호를 요청하지만 가져오기할 때는 요청하지 않습니다.
직접 만들 수 있습니다. 개인용 apiu 토큰인지 (OAuth) 를 사용하는 것과 같은 방식으로 시 일반 크레덴셜이 (http://support. 사용한다. '/ 설정 / 토큰'). 예를 들면 다음과 같습니다.
git remote add fork https://[email protected]/foo/bar
git push fork
또 다른 방법은 구성려면 사용자 / 암호를 /.netrc '~' ('_netrc' 에 Windows) (예:
machine github.com
login USERNAME
password PASSWORD
Https 를 위해, 추가 추가 라인:
protocol https
캐시에는 너회의 깃허브 암호를 깃 (git) 를 사용할 때 기억해야 할 수 있는 자격증명이 도우미 https 를 사용할 수 있습니다 떠날려하면 git 사용자 이름과 암호를 너회의 깃허브 때마다 깃허브 열릴 것이라고 말했습니다.
Mac. '-' ('도우미' 가 오스키카린 필수), 글로벌 크레덴시알.헬퍼 오스키카린 깃 (git) 구성
Windows: 깃 (git) '-' 글로벌 크레덴시알.헬퍼 윈크레드 구성용
리눅스 및 기타: 깃 (git) '-' 글로벌 크레덴시알.헬퍼 캐시에는 구성용
관련.
',' '와' 리포 클론할 후에는 리포지토리를 repo/.git/config 일부 구성 등 추가 편집할 수 있습니다 (아래 참조).
[user]
name = you_name
password = you_password
[credential]
helper = store
그런 다음, 다시 't be 주문하신거 won& # 39 sername' 와 '암호란이'.
그러니까말이야 아닙니다 필요하지만 때로는 단순한 솔루션 - 필요한 보안 솔루션을 설치 없이 다른 사항은요. , 작동하지 가져다줄래요 내가 만든 뒤 도우미 = 작성하든지 더미 (dummy) 도우미.
#!/bin/bash
while read line
do
echo "$line"
done < "/dev/stdin"
echo username=mahuser
echo password=MahSecret12345
make it 실행가능파일:
chmod u+x /home/mahuser/bin/credfake
그 후 구성하시겠습니까 깃 (git):
git config --global credential.helper /home/mahuser/bin/credfake
(또는 사용하지 않고 그 - 1 로 글로벌 리포 어레이만)
와 - voil& # 225; 이 git 사용자 + - 사용할 암호를.
대신 계정 암호 인증 토큰인지 사용해야 합니다. 깃허브 documentum. 만들고 개인 설정 / 애플리케이션에 액세스 토큰. 이 같은 방식으로 암호를 사용하는 토큰인지 사용할 수 있습니다.
사용자가 사용하지 않는 계정 암호 토큰 고안되었습니다 프로젝트 작품이다. 새로 만드는 등 관리 작업을 수행할 때, 또는 해지 사용해야만 암호 토큰을 이전 토큰.
사용자 계정 비밀번호를 부여하는 대신 증표지 또는 전체 액세스하도록 구체적인 구축 프로젝트, 깃허브 부여하십시오 단일 프로젝트 리포지토리를 액세스하려면 주요 사용할 수 있습니다. 깃 (git) 을 사용할 수 있는 프로젝트를 구성할 수 있습니다 다음 단계에서 액세스하려면 때 깃 (git) 이 다른 주요 고객 또는 다른 프로젝트를 함께 여전히 시 일반 자격증명이:
내가 봤을 때, t 기억나 don& # 39 이 있지만, re 주문하신거 you& # 39 의 응용 프로그램 액세스 할 수 있는 사용자 이름 - # 39 that& 토큰인지. 그럼 암호를 비워. 된다고 on my Mac.
일반적으로, 원격 url 을 이 같은 일이 있습니다.
git remote -v
origin https://gitlab.com/username/Repo.git (fetch)
origin https://gitlab.com/username/Repo.git (push)
Git 사용자 이름과 암호를 사용하는 동안 건너뛰려면 시도하시겠습니까 누름식 ',' 이:
git remote set-url origin https://username:[email protected]/username/Repo.git
git remote -v
origin https://username:[email protected]/username/Repo.git (fetch)
origin https://username:[email protected]/username/Repo.git (push)