항상 git 자격 증명을 요구하는 Visual Studio Code


218

Visual Studio Code 사용을 시작했으며 테스트 프로젝트를 GitHub 에 저장하려고 했지만 Visual Studio Code 는 항상 GitHub 자격 증명을 요구합니다 .

내 PC GitHub DesktopGit에 설치했으며 이미 실행했습니다.

 git config --global credential.helper wincred

그러나 여전히 Visual Studio Code 는 자격 증명을 요구하고 있습니다.

어떤 도움?

다음은 사용자 프로필 folfer에있는 내 .gitconfig 파일입니다.

    [filter "lfs"]
    clean = git-lfs clean %f
    smudge = git-lfs smudge %f
    required = true
[user]
    name = ddieppa
[user]
    email = fake@live.com
[credential]
    helper = wincred

자격 증명을 요구하는 팝업 창은 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

팝업에 GitHub 자격 증명을 입력 했지만 Visual Studio CodeGit 출력 창 에이 오류가 계속 발생합니다 .

remote: Anonymous access to ddieppa/LineOfBizApp.git denied.
fatal: Authentication failed for 'https://github.com/ddieppa/LineOfBizApp.git/'

어떤 GItHub URL을 사용하고 있습니까? HTTP 또는 GIT (SSH)? HTTP URL을 사용하는 경우 URL에 사용자 및 비밀번호를 포함해야합니다. GIT URL을 더 잘 사용하고 사용자의 SSH 키 목록에 공개 SSH 키를 추가하십시오
yorammi

@yorammi 저는 git을 처음 사용하고 있으므로 Github Desktop과 Git을 설치하고 Visual Studio Code를 사용하여 프로젝트를 저장하려고하므로 전달할 내용을 모릅니다. 어떻게 알 수 있습니까?
ddieppa

@ddieppa GitHub Desktop은 https 연결을 통해 2 단계 인증으로 작업 할 수 있습니다. 그러나 이것은 다른 도구를 손상시킵니다. 답변 에서처럼 이제 원본 URL을 https에서 ssh로 변경해야한다고 말했습니다.
Lex Li

답변:


158

최종 업데이트 : 2019 년 3 월 5 일

98 개의 공감 후, 나는 설명과 함께 진정한 대답을해야한다고 생각합니다.

VS 코드가 암호를 요구하는 이유는 무엇입니까? VSCode는 자동 가져 오기 기능을 실행하지만 git 서버에는 신원을 인증 할 정보가 없습니다. 다음과 같은 경우에 발생합니다.

  • git repo에 https원격 URL이 있습니다. 예! 이런 종류의 리모콘은 항상 당신에게 물어볼 것입니다. 예외는 없습니다! 아래 솔루션으로 인증을 캐시하기 위해 임시 트릭을 수행 할 수 있지만 권장하지는 않습니다.
  • git repo에 ssl원격 URL이 있지만 ssh 공개 키를 git 서버에 복사하지 않았습니다. ssh-keygen키를 생성하고 git 서버에 복사하는 데 사용하십시오 . 끝난! 이 솔루션은 터미널에서 암호를 다시 입력하지 않아도됩니다. @Fnatical하여 좋은 명령을 참조하십시오 여기에 대한 답변을.

이 답변의 끝에 업데이트 된 부분은 실제로 당신을 전혀 도움이되지 않습니다. (실제로 워크 플로가 정체됩니다.) VSCode에서 발생하는 작업 만 중지하고 이러한 일을 터미널로 이동합니다.

이 잘못된 답변이 오랫동안 오랫동안 영향을 미쳤다면 죄송합니다.

-

원래 답변 (나쁜)

VSCode 문서 에서 해결책을 찾았습니다 .

팁 : VS Code가 Git 리모컨과 통신 할 때마다 자격 증명을 요청하지 않도록 자격 증명 도우미설정해야합니다 . 이 작업을 수행하지 않으면 ... 메뉴에서 자동 가져 오기 비활성화를 고려하여 표시되는 프롬프트 수를 줄일 수 있습니다.

따라서 자격 증명 도우미를 켜면 Git이 암호를 메모리에 한동안 저장합니다. 기본적으로 Git은 15 분 동안 비밀번호를 캐시합니다.

터미널에 다음을 입력하십시오.

git config --global credential.helper cache
# Set git to use the credential memory cache

기본 비밀번호 캐시 제한 시간을 변경하려면 다음을 입력하십시오.

git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)

업데이트 (원래 답변이 작동하지 않는 경우)

위와 동일하게 VS 코드와 구성을 설치했지만 @ddieppa가 말했듯이 나에게도 효과가 없었습니다. 그래서 User Setting에서 옵션을 찾으려고했는데 "git.autofetch"= true를 보았습니다. 이제 false로 설정하십시오! VS 코드는 더 이상 암호를 다시 반복해서 입력 할 필요가 없습니다!

메뉴에서 파일 / 환경 설정 / 사용자 설정을 클릭하고 다음을 입력하십시오.

이 파일에 설정을 저장하여 기본 설정을 덮어 씁니다.

{
  "git.autofetch": false
}

2
나는 심지어이 하나를 사용하는 시도했지만 나를 위해 일을하지 않았다 : $ 자식 설정 --global credential.helper wincred
ddieppa

자동 가져 오기 솔루션은 지속적인 팝업 문제를 중지 시키지만, 모든 푸시 앤 풀에서 자격 증명을 입력해야합니다. http / s가있는 PC를 사용하는 경우 아래의 자격 증명 관리자 솔루션이 효과적입니다.
ruttopia

3
작업을 시작하지 않은 경우, 특히 자격 증명을 요구하는 경우 팝업되지 않아야합니다. 이것이 스 푸프가 아니라 안전하다는 것을 어떻게 알 수 있습니까?
Anthony Johnston

7
그 설정에주의하십시오! 자격 증명을 전혀 기억하는 데 도움이되지 않습니다. git-fetch를 자동으로 돕는 것에 대해 이야기하고 있습니다. 자세한 내용 은 atlassian.com/git/tutorials/syncing#git-fetch 를 참조하십시오. 신임 정보 저장과 관련하여 명령을 사용하십시오 git config --global credential.helper cache. 자세한 내용 은 git-scm.com/book/gr/v2/Git-Tools-Credential-Storage 를 참조하십시오.
Grateful

7
자동 가져 오기를 끄는 것이 "나를 떠나"옵션으로 좋습니다. 그러나 "소프트웨어가 작동하지 않으면 사용을 중지하십시오."와 비슷합니다. 사람들이 차이를 인식하는 것이 중요합니다. 이 답변의 "업데이트"부분에 "작동하지 않는 경우"라고 말하고 실제로 문제를 해결하지 않고 방해하지 않도록 설명하십시오. 위의 답변 중 일부는 실제로 정확합니다 (적어도, 저에게 도움이되는 문서 링크를 따르면)
Don

67

다음과 같이 자격 증명을 설정할 수 있어야합니다.

git remote set-url origin https://<USERNAME>:<PASSWORD>@bitbucket.org/path/to/repo.git

다음과 같이 원격 URL을 얻을 수 있습니다.

git config --get remote.origin.url


5
비밀번호에 @가 있으면 URL은 무엇입니까?
Suvonkar

이것은 정말 좋은 방법입니다. 그러나 한 가지 질문은 해당 자격 증명이 로컬 파일 시스템에 어디에 저장됩니까?
Teoman shipahi

1
.git \ config 파일에서
yohosuff

또한 암호를 로컬 디스크에 저장하지 않고 계속 묻는 메시지가 표시되도록하려면 <PASSWORD>는 선택 사항입니다.
벤 Barreth

암호에 사용할 개인 액세스 토큰을 제공 할 수도 있습니다. 이렇게하면 실제 계정 암호가 일반 텍스트로 저장되어 있지 않을 수 있습니다. 또한 원하거나 시스템이 손실되거나 손상되었다고 생각되면 프로비저닝을 쉽게 제거 할 수 있습니다.
CTS_AE

55

이것은 나를 위해 일하고있다 :
1. 자격 증명 hepler를 저장하도록 설정
$ git config --global credential.helper store
2. 원하는 경우 확인 :
$ git config --global credential.helper store

Here 에서 인용 한 git bash를 사용할 때의 간단한 예 (현재 저장소에서만 작동 --global하고 모든 저장소에 사용 )

$ git config credential.helper store
$ git push http://example.com/repo.git
Username: < type your username >
Password: < type your password >

[몇일 후]
$ git push http://example.com/repo.git
[자격 증명이 자동으로 사용됨]

VS 코드에서도 작동합니다.

더 자세한 예 및 고급 사용법 여기에서 확인하십시오 .

참고 : 사용자 이름 및 비밀번호는 암호화되어 일반 텍스트 형식으로 저장되지 않으므로 개인용 컴퓨터에서만 사용하십시오.


2
이 캐시가 왜 우분투 18.04 및 vs 코드에서 작동하지 않을지 모르겠습니다. store그것을했다.
D. Dan

1
안전하지 않습니다. 대신 캐시를 사용하십시오. "개인"컴퓨터가 해킹 당하면 자식 자격 증명도 해킹 될 수 있습니다.
Hypersoft Systems

1
캐시는 자격 증명을 메모리에 저장하지만 장기적인 해결책은 아닙니다. 매번 사용자 이름과 비밀번호를 입력 할 필요는 없지만 여전히 자주 입력해야합니다.
Vaibhav Vishal

1
이 답변이 가장 좋습니다. VS 코드를 사용하여 코드를 원본 (예 : GitLab)으로 푸시 할 때마다 사용자 이름 / 암호를 묻는 메시지를 표시하고 싶지 않습니다.
Sean McCarthy

나는 여전히이 방법이 안전하지 않다고 주장한다. creds는`~ / .git-credentials` 파일에 저장되어 시스템이 손상되었을 때 악용 될 수 있습니다. 대안으로 ssh 키 https를 더 잘 변경 ssh하고 사용하십시오.
Mohith7548

21

다음 단계는 방법을 안내합니다.

  1. 비밀번호 문구없이 SSH 키 생성 **
  2. 1 단계에서 생성 된 공개 키를 Git 리포지토리에 추가
  3. 위 단계가 성공적으로 완료되었는지 확인
  4. 첫 커밋을 만드십시오 (사용자 이름 / 비밀번호를 제공하지 않아도 됨)

** 작업이 특히 민감한 경우 암호 문구없이 SSH 키를 생성하는 것은 현명하지 않습니다.

OS - 페도라 28 | 에디터 -VS Code v1.23.0 | 리포지토리 -힘내

SSH 키를 생성하십시오.

  • ssh-keygen -t rsa -C "email@goeshere.com"
  • 키를 저장할 파일을 입력하십시오. Enter를 누르십시오.
  • 암호 입력 : Enter 키를 누릅니다
  • 동일한 암호를 다시 입력하십시오 : Enter를 누르십시오

위 단계를 완료하면 공개 키의 위치가 터미널 창에 표시됩니다. 현재 로그인 한 사용자가 'bob'인 경우 공개 키의 위치는 /home/bob/.ssh/id_rsa.pub입니다.

공개 키를 복사하여 GitHub에 가져 오기 :

  • cat /home/bob/.ssh/id_rsa.pub

  • 이제 터미널 창에 표시된 전체 공개 키를 클립 보드에 복사하십시오

  • https://github.com으로 이동하여 로그인
  • 화면 오른쪽 상단에있는 사용자 아이콘을 클릭하고 설정을
  • SSH 및 GPG 키를 클릭하십시오.
  • 새 SSH 키를 클릭하십시오.
  • 제목을 입력하고 클립 보드에 복사 한 공개 키를 첫 번째 글 머리 기호에 붙여 넣은 후 SSH 키 추가를 클릭 하십시오.

위 단계를 확인하십시오.

  • ssh -T git@github.com

  • yes

  • 안녕하세요 ! 성공적으로 인증되었지만 GitHub는 셸 액세스를 제공하지 않습니다.

사용자 이름 / 암호를 입력하지 않고 먼저 커밋 / 푸시 : -touch test.txt

  • git add test.txt

  • git commit-편집기를 열고 메시지를 입력 한 후 파일을 저장하십시오. vi가 편집기 인 i경우 파일이 열리면을 누르고 메시지를 입력 한 후 esc를 누른 다음 enter :x를 눌러 변경 사항을 저장 하십시오 .

  • git push

발생할 수있는 유일한 문제는 GitHub에 SSH를 시도 할 때입니다. 이 링크는 도움이 될 것입니다-

즐거운 사냥!


20

" Windows 용 Git 자격 증명 관리자 "를 설치 하고 자격 증명 관리자 설정 지침을 따르십시오 .

Git (예 : VS 코드)을 사용하는 앱 내 에서 필요한 경우 Visual Studio Team Services 자격 증명 입력에 필요한 대화 상자를 "마 법적으로 "엽니 다.


3
"Linux 용 Git Credential Manager"도 있었으면 좋겠다. 아, ssh-agent벌써 뛰고 있어 그러나 VS 코드는 Linux에서이를 무시하는 것으로 보입니다.
wigy

이것은 저에게 가장 간단한 해결책입니다. 그리고 그것은 잘 작동합니다! 이것을 지적 해 주셔서 감사합니다
dapidmini

20

내가해야 할 일은이 명령을 실행하는 것입니다.

git config --global credential.helper wincred

그런 다음 암호를 두 번 묻습니다.

다음에 암호를 묻지 않고 작동했습니다.



4
우분투에서는 store대신 사용하십시오 wincred.
Cees Timmerman

1
이것은 나를 위해 일했다! 예 git config --global credential.helper 'cache --timeout==1209600'를 들어 기본 15 분 대신 2 주 동안 지속되도록 할 수도 있습니다 . 출처 : help.github.com/en/github/using-git/…
Andrew

1
^ 이것에 대한 자세한 내용은 여기를 참조하십시오 : git-scm.com/docs/gitcredentials git-scm.com/docs/git-credential-cache git-scm.com/docs/git-credential-store store 는 디스크. 또한, 내 이전의 코멘트에 오류가 있습니다 : 사용하지 않는 ==, 사용 =. 편집하기에 너무 늦었습니다.
앤드류

18

http / https 대신 ssh를 사용하십시오.

로컬 컴퓨터에서 ssh 키를 설정하고 git 서버에 업로드하고 URL 양식 http://을 바꾸어야하므로 git://더 이상 비밀번호를 사용할 필요가 없습니다.

ssh를 사용할 수 없다면 이것을 설정에 추가하십시오 :

[credential "https://example.com"]
    username = me

문서는 여기에 있습니다 .


github에서 ssh 키 사용


다음 단계를 따르기 만하면 ssh 키를 즉시 설정할 수 있습니다.

  • 새 ssh 키를 생성하십시오 (또는 이미 키가있는 경우이 단계를 건너 뛰십시오)
    ssh-keygen -t rsa -C "your@email"

  • home/.ssh디렉토리 (또는 Users/<your user>.ssh창 아래) 에 키를 설정 한 후 키를 열고 내용을 복사하십시오.


github 계정에 sh 키를 추가하는 방법은 무엇입니까?

  • github 계정에 로그인
  • 오른쪽 상단의 목장주를 클릭하십시오 (설정).
    github 계정 설정
  • 를 클릭하십시오 SSH keys
    ssh 키 섹션
  • 를 클릭하십시오 Add ssh key
    ssh 키 추가
  • 키 붙여 넣기 및 저장

그리고 당신은 모두 가기로 설정했습니다 :-)


4
근본 원인이 무엇인지 명확히해야합니다. 필자의 경우에는 2 단계 인증을 활성화 했으므로 SSH가 repos에 연결하는 유일한 방법입니다. 모든 https 연결은 그러한 프롬프트로 이어집니다.
Lex Li

@codeWizard 정확히 무슨 일이 있었는지 기억하지 못하지만 VS 코드가 제대로 작동했습니다. 추가 구성없이 GitHub 리포지토리에 연결하는 것을 의미합니다. 문제는 Github Desktop 다음에 Git을 설치 한 것이었을 수도 있습니다.
ddieppa

VC는 자격 증명을 내부적으로 저장할 수 있으며 git를 다시 설치 / 업그레이드하면 구성이 변경되었을 수 있습니다. VC 사용자는 UNIX 사람이 아니므로 내 컴퓨터에서 테스트 할 수 없습니다.
CodeWizard

3
@codeWizard VS 코드는 오픈 소스와 멀티 플랫폼, 당신은 ssh를 변형 작업, : 윈도우, 맥 OS 나 리눅스에서 실행 내가 무엇을 얻을 볼 수 있습니다
ddieppa

1
설명서 링크가 끊어졌습니다.
Vishal

14

일반적으로 내장 자격 증명 저장 기능을 사용할 수 있습니다.

git config --global credential.helper store

또는 Windows를 사용하는 경우 해당 자격 증명 시스템을 사용할 수 있습니다.

git config --global credential.helper wincred

또는 MacOS를 사용하는 경우 자격 증명 시스템을 사용할 수 있습니다.

git config --global credential.helper osxkeychain

첫 번째 솔루션은 대부분의 상황에서 최적입니다.


6

자동 힘내 인증 . v1.45 릴리스 정보 :

GitHub 리포지토리에 대한 GitHub 인증

VS Code는 이제 GitHub 리포지토리에 대한 자동 GitHub 인증을 보유합니다. 이제 시스템에서 자격 증명 관리자를 구성하지 않고도 공용 및 개인 리포지토리를 복제, 가져 오기, 푸시 및 푸시 할 수 있습니다. 통합 터미널에서 호출 된 Git 명령 (예 : git push)도 이제 GitHub 계정에 대해 자동으로 인증됩니다.

설정으로 GitHub 인증을 비활성화 할 수 있습니다 git.githubAuthentication. 설정과 터미널 인증 통합을 비활성화 할 수도 있습니다 git.terminalAuthentication .


큰! Linux (Ubuntu 18.04 + KDE Plasma)에서이 두 설정을 비활성화하면 자격 증명 처리가 수정됩니다. 이 두 가지 기능은 askpass = /usr/bin/ksshaskpass내에서 재정의 되었으며 .gitconfig결과적으로 매번 사용자 이름과 암호를 요청했습니다. 더 많은 컴퓨터에서 버전 1.45가 역할을 수행함에 따라 아마도 더 많은 투표가 이루어질 것입니다.
Andrei Sinitson

4

Windows 10의 경우 : 제어판 / 자격 증명 관리자 / Windows 자격 증명-> git 링크를 클릭하고 편집-> 새 암호로 업데이트하십시오. 작동합니다


2

암호없이 SSH 키를 사용하십시오.

어쩌면 이것은 일부 사람들에게 분명 할 수도 있습니다 (나에게는 그렇지 않았습니다). 암호 문구가 절대적으로 필요한 경우에도 문제를 해결하지 못하지만 Mac의 상황에서는 적절한 절충안이었습니다.


2

잠시 이런 식으로 싸운 후에, 특히 GitHub와 BitBucket에서 여러 계정을 가질 때 좋은 해결책을 생각해 냈습니다. 그러나 VSCode의 경우 결국 Git Bash 터미널에서 시작하여 bash 세션에서 환경 변수를 상속하고 볼 ssh-agent를 알았습니다.

나는 이것이 오래된 게시물이라는 것을 알고 있지만 여전히 필요한 정보를 얻을 수있는 곳을 찾기 위해 고심했습니다. 2017 년부터 ssh-agent는 리포지토리에 액세스하려고 할 때만 암호를 입력하라는 메시지를 표시했습니다.

누군가 관심이 있다면 여기에 찾은 결과를 내려 놓습니다 .


1

기사따르면 :

GIT_SSH env를 설정할 수 있습니다. var. 퍼티의 plink.exe 프로그램에. 그런 다음 pageant.exe를 인증 에이전트로 사용하십시오.


1

다음 단계에 따라 문제를 해결하십시오.

제거 된 소프트웨어 Vscode 및 git은 동일한 소프트웨어를 다시 설치했습니다. 자식 저장소 복제 URL을 ssh에서 https로 변경했습니다.


1

Visual Studio Code에서도 비슷한 문제가 발생했습니다.

원격 URL을 https 로 변경하여 해결했습니다 . (파일 .git / config에 있음)

[remote "origin"]
    url = https://user@server.com/plesk-git/project.git

그리고 또한

git config --global credential.helper wincred

Windows 자격 증명 팝업이 다시 나타 났으며 문제가 해결되었습니다.


0

나를 위해 SSH 키를 사용하여 원격 저장소를 설정했지만 회사의 도메인 정책으로 인해 HOMEDRIVE 환경 변수가 자동으로 네트워크 공유로 설정되어 있기 때문에 git에서 찾을 수 없습니다. 시작하기 전에 내 쉘에서 해당 환경 변수를 변경하면 code .VSCode가 올바른 환경 변수를 상속하고 git 출력 창에서 더 이상 연결 오류가 발생하지 않았습니다.

이제 HOMEDRIVE가 항상 c:\users\marvhen디렉토리의 기본 위치 인 로컬 디렉토리를 가리 키도록 도메인 정책을 재정의하는 방법을 알아 내야합니다 .ssh.


0

나는 다음 단계를 수행하여 이것을 막을 수 있었다.

  1. Git Desktop 제거 (필요하지 않음)
  2. Credentials Manager 제거 cd "C:\Program Files\Git\mingw64\libexec\git-core"git-credential-manager.exe uninstall
  3. wincred를 사용하도록 자격 증명 도우미 재설정 git config --global credential.helper wincred
  4. 일부 변경 사항을 적용하고 자격 증명을 다시 입력하는 User VS Code

참고 : 개인 액세스 토큰을 암호로 사용하고있었습니다.


0

비슷한 방법으로 간단한 문제를 해결했습니다.

  1. CMD 또는 터미널로 이동
  2. 유형 git pull origin master . 'origin'을 원격 이름으로 바꿉니다.
  3. 자격 증명을 요구합니다. 입력하세요.

그게 다야. 나는 문제를 해결했다


0

위의 ssh 구성 항목을 추가하는 것 외에

창문이면

Set-Service ssh-agent -StartupType Automatic 

powershell에서 vs 코드는 프롬프트하지 않아야합니다 ...


0

Windows 10의 경우 Windows 키 유형 cred를 누르고 제어판에서 "Credential Manager"를 클릭하여 연 다음 관련 캐시 된 자격 증명을 제거한 다음 다시 시도하십시오. 올바른 비밀번호로 사용자 ID 비밀번호 키를 묻는 메시지가 표시됩니다. .

네트워크 비밀번호를 변경하면 나와 함께


0

나는 보통이 간단한 명령을 실행하여 git remote url을 https 에서 ssh 로 변경합니다.

git remote set-url origin git@github.com:username/repo-name-here.git
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.