programing

Visual Studio Code에서 항상 Git 자격 증명을 요청합니다.

nicescript 2023. 5. 22. 23:21
반응형

Visual Studio Code에서 항상 Git 자격 증명을 요청합니다.

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

PC GitHub Desktop에 설치했고 Git도 설치했습니다.이미 실행했습니다.

 git config --global credential.helper wincred

그래도 비주얼 스튜디오 코드가 자격 증명을 요구하고 있습니다.

이걸 어떻게 고칠 수 있을까요?

다음은 사용자 프로필 폴더에 있는 .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 Code의 Git 출력 창에서 다음 오류가 발생합니다.

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

Visual Studio Code에서 암호를 요청하는 이유는 무엇입니까?Visual Studio Code는 자동 가져오기 기능을 실행하는 반면 Git 서버에는 사용자의 ID를 인증할 수 있는 정보가 없기 때문입니다.다음과 같은 경우에 발생합니다.

  • 에 Git 저에다있습다니가 있습니다.https원격 URL. 네! 이런 종류의 리모컨은 매번 당신에게 꼭 물어볼 것입니다.여기에는 예외가 없습니다! (아래 솔루션처럼 임시로 권한을 캐시하는 방법을 사용할 수 있지만 이 방법은 권장되지 않습니다.)
  • 에 Git이 있습니다.ssh원격 URL. 그러나 ssh 공용 키를 Git 서버에 복사하지 않았습니다.사용하다ssh-keygen키를 생성하여 Git 서버에 복사합니다.완료! 이 솔루션은 또한 터미널에서 암호를 다시 입력하지 않도록 도와줍니다.답은 여기에서 @Fnatical의 좋은 지침을 참조하십시오.

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

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


원답(나쁨)

Visual Studio Code 문서에서 솔루션을 찾았습니다.

팁: 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)

원본 답변이 작동하지 않는 경우

위에 Visual Studio Code와 구성을 동일하게 설치했지만 @ddieppa가 말했듯이 저에게도 작동하지 않았습니다.그래서 저는 User Setting에서 옵션을 찾으려 했고, "git"을 보았습니다.autofetch" = true입니다. 이제 false로 설정합니다!Visual Studio 코드는 더 이상 암호를 반복해서 입력할 필요가 없습니다!

메뉴에서 File → PreferencesUser Setting:다음을 입력합니다.

기본 설정을 덮어쓰려면 이 파일에 설정을 넣습니다.

{
  "git.autofetch": false
}

이것은 저에게 효과가 있었습니다.

  1. 저장할 자격 증명 도우미를 설정합니다.

    git config --global credential.helper store

  2. 그런 다음 원하는 것이 있는지 확인합니다.

    git config --global credential.helper

여기서 인용한 Git Bash를 사용할 때의 간단한 예(현재 저장소에서만 작동, 사용)--global모든 리포지토리):

git config credential.helper store
git push http://example.com/repo.git

Username: < type your username >
Password: < type your password >

[several days later]

git push http://example.com/repo.git

[your credentials are used automatically]

Visual Studio Code에서도 작동합니다.

더 자세한 예와 고급 사용법은 다음과 같습니다.

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

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

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

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

git config --get remote.origin.url

제가 해야 할 일은 다음 명령을 실행하는 것이었습니다.

Windows:git config --global credential.helper wincred

Linux:git config --global credential.helper store

그런 다음 암호를 두 번 입력하라는 메시지가 표시되었습니다.

다음 번에는 비밀번호를 묻는 메시지 없이 작동했습니다.

일반적으로 다음과 같은 기본 제공 자격 증명 스토리지 기능을 사용할 수 있습니다.

git config --global credential.helper store

또는 Windows(윈도우)에 있는 경우 다음과 같은 자격 증명 시스템을 사용할 수 있습니다.

git config --global credential.helper wincred

또는 macOS를 사용하는 경우 다음과 같은 자격 증명 시스템을 사용할 수 있습니다.

git config --global credential.helper osxkeychain

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

다음 단계를 수행하면 다음 작업을 수행할 수 있습니다.

  1. SSH 키 생성(암호 구문 없음**)
  2. 1단계에서 생성된 공용 키를 Git 저장소에 추가합니다.
  3. 위의 단계가 성공적으로 완료되었는지 확인합니다.
  4. 사용자 이름/암호를 제공하지 않고 처음으로 커밋합니다.

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

OS - Fedora 28 | 편집기 - Visual Studio Code v1.23.0 | 저장소 - Git

SSH 키 생성:

  • ssh-keygen -t rsa -C "email@goeshere.com"
  • 키를 저장할 파일 입력: 를 누릅니다.
  • 암호 입력:프레스
  • 동일한 암호 구문 다시 입력:프레스

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

GitHub에 공개 키 복사 및 가져오기:

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

  • 터미널 창에 표시된 전체 공용 키를 클립보드에 복사

  • https://github.com 으로 이동하여 로그인합니다.

  • 화면의 오른쪽 상단 모서리에 있는 사용자 아이콘을 클릭하고 설정을 선택합니다.

  • SSHGPG클릭

  • 새 SSH클릭

  • 제목을 입력하고 첫 번째 글머리 기호에 복사된 공용 키를 클립보드에 붙여넣은 다음 SSH추가를 클릭합니다.

위의 단계를 확인합니다.

  • ssh -T git@github.com

  • yes

  • 안녕하세요! 인증에 성공했지만 GitHub에서 셸 액세스를 제공하지 않습니다.

사용자 이름/암호를 입력하지 않고 처음으로 커밋/푸시:

  • touch test.txt

  • git add test.txt

  • git commit편집기를 열고 메시지를 입력한 후 파일을 저장합니다.vi가 편집자인 경우 파일이 열리면 를 누르고 메시지를 입력한 다음 를 누릅니다.:x변경 내용을 저장합니다.

  • git push

GitHub에 SSH를 시도할 때 발생할 수 있는 유일한 문제입니다.이 링크를 통해 도움을 받을 수 있습니다.

즐거운 사냥 되세요!

Windows용 Git Credential Manager(인증 정보 관리자)를 설치합니다(인증 정보 관리자 설정 지침).

Git를 사용하는 애플리케이션 내에서 필요한 경우(예: Visual Studio Code) Visual Studio Team Services 자격 증명 입력에 필요한 대화 상자를 "마법적으로" 엽니다.

HTTP 또는 HTTPS 대신 SSH를 사용합니다.

한 후 형식을 .http://git://그러면 더 이상 암호를 사용할 필요가 없습니다.

ssh를 사용할 수 없는 경우 구성에 추가합니다.

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

문서가 여기 있습니다.


GitHub에서 SSH 키 사용


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

  • 이 를 건너뜁니다). 또 SSH 키 (SSH 이 미 생 다 건 니 너 뜁 를 계 새 단 이 우 는 경 있 가 키 는 성 또 ▁generate 뜁 를 새 ▁ssh 너 니▁key건)계다단▁((▁ifor이▁this▁step▁a)생우키경ssh-keygen -t rsa -C "your@email"

  • 가 를키설후한에 home/.ssh 디토리또)Users/<your user>.ssh에서 열기 및 (윈도우)에서 열어서 내용을 복사합니다.


SSH 키를 GitHub 계정에 추가하려면 어떻게 해야 합니까?

그리고 당신은 갈 준비가 다 되었습니다 :-)

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

GitHub 저장소에 대한 GitHub 인증

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

은 GitHub 인증을 수 .git.githubAuthentication설정또한 터미널 인증 통합을 사용하지 않도록 설정할 수 있습니다.git.terminalAuthentication설정

Windows 10의 경우: 제어판자격 증명 관리자 → Windows 자격 증명 → Git 링크를 클릭하고 → 편집 → 새 암호로 업데이트합니다.그러면 되겠군요.

Visual Studio Code와 Ubuntu 20.04(Focal Fossa)에서 실행했습니다.

정기적으로 요청하는 자격 증명 문제를 자동으로 해결했습니다.

git config --global credential.helper store

Ubuntu 사용자는 Visual Studio Code의 터미널에 다음 명령을 입력하기만 하면 됩니다.

git config --global credential.helper store

이제 사용자 이름과 암호를 한 번 입력하면 다시 묻지 않습니다.

참고:

  1. 사용자 이름과 암호는 암호화되지 않고 일반 텍스트 형식으로 저장되므로 주의하여 사용하십시오.

  2. 그러나 암호에 @, #, &, * 등과 같은 특수 문자가 포함되어 있으면 이러한 문자가 암호화됩니다.

또한 집에서 '.git-credentials' 파일을 찾을 수 있습니다.숨겨진 파일이므로 숨겨진 파일을 사용하도록 설정해야 합니다.

위치: ~/.git-credentials

암호 구문 없이 SSH 키를 사용합니다.

아마도 이것은 일부 사람들에게는 명백할 것입니다(나에게는 그렇지 않았습니다).암호가 꼭 필요한 경우에도 문제가 해결되지 않지만, Mac에서의 제 상황에서는 적절한 타협이었습니다.

이와 같은 것과 잠시 싸운 후, 특히 GitHub과 Bitbucket 모두에 걸쳐 여러 계정을 가지고 있을 때 좋은 해결책을 생각해 낸 것 같습니다.그러나 Visual Studio Code의 경우 Git Bash 터미널에서 시작하는 것으로 끝나 bash 세션에서 환경 변수를 상속하고 어떤 ssh-agent를 확인할 수 있었습니다.

저는 여전히 제가 필요로 하는 정보를 얻을 수 있는 한 곳을 찾기 위해 고군분투했습니다.또한 2017년부터 ssh-agent는 저장소에 액세스하려고 할 때만 암호를 입력하라는 메시지를 표시하는 기능을 제공했습니다.

관심 있는 사람이 있으면 여기에 제 연구 결과를 적어 두겠습니다.

보통 다음과 같은 간단한 명령을 실행하여 Git 원격 URL을 HTTPS에서 SSH로 변경합니다.

git remote set-url origin git@github.com:username/repo-name-here.git

컴퓨터에서 문제를 해결한 방법은 다음과 같습니다.

  1. Visual Studio

  2. 메뉴로 이동파일 → 환경설정설정

  3. 사용자 탭에서 확장을 확장하고 Git를 선택합니다.

    여기에 이미지 설명 입력

  4. 오른쪽 창에서 자동 검색을 찾아서 선택 취소

    여기에 이미지 설명 입력

기사 다음:

GIT_SSH 환경변수를 PuTTY의 플링크로 설정하면 됩니다.exe 프로그램

(그런 다음 agenta.exe 프로그램을 인증 에이전트로 사용합니다.)

저는 다음 단계를 수행하여 이를 막을 수 있었습니다.

  1. GitHub Desktop 제거(이 작업이 필요한지 잘 모르겠습니다)
  2. 자격 증명 관리자 제거:cd "C:\Program Files\Git\mingw64\libexec\git-core"에 뒤에git-credential-manager.exe uninstall
  3. 증명 wincred를 합니다.git config --global credential.helper wincred
  4. Visual Studio Code를 사용하여 일부 변경 사항을 푸시하고 자격 증명을 다시 입력합니다.

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

다음 단계를 통해 문제를 해결합니다.

Visual Studio Code 및 Git 소프트웨어를 제거하고 다시 설치합니다.Git 저장소 복제 URL을 SSH에서 HTTPS로 변경합니다.

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 자격 증명 팝업이 뜨더니 문제가 해결되었습니다.

반대의 문제이지만 관련이 있습니다.

저의 경우 캐시 도우미 시간 제한이 이미 만료되었음에도 불구하고 입력한 암호를 잊지 않는 Visual Studio Code 통합 터미널과 씨름하고 있었습니다.

외부 터미널 세션은 잘 작동했습니다.

Visual Studio Code에 실제 Git 플러그인 위에 선택적 캐시를 설정할 수 있는 옵션이 있다는 것을 발견했습니다. 이 옵션은 예상된 동작이 발생하지 않도록 허용하지 않았습니다.

Visual Studio 코드 기본 설정 UI

일단 확인한 후, 제 비밀번호는 캐시 타임아웃에서 잊어버리고 있었기 때문에, 저는 아무런 노력 없이 개인 계정에서 직장 계정으로 이동하기 시작할 수 있었습니다 :)

Linux 및 Visual Studio Code 1.58.2에서 사용됩니다.

이 링크를 참조하여 Git 자격 증명을 설정할 수 있습니다.

다음 명령을 실행하여 Git 인증 정보를 저장할 수 있습니다.Git 명령이 실행될 때마다 사용자 이름과 암호를 입력할 필요는 없습니다(Windows용).

git config --global credential.helper wincred

Mac / Linux의 경우 Git 인증 정보를 저장하는 방법은 Mac 및 Linux용 Git 인증 정보 관리자를 참조하십시오.

저는 SSH 키로 원격 저장소를 설정했지만 회사의 도메인 정책으로 인해 HOMEDRIVE 환경 변수가 네트워크 공유로 자동 설정되어 Git에서 찾을 수 없었습니다.하기 내code .Visual Studio Code가 올바른 환경 변수를 상속하고 Git 출력 창에서 더 이상 연결 오류를 발생시키지 않도록 했습니다.

정책을 내 .c:\users\marvhen -입니다..ssh디렉토리입니다.

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

  1. CMD 또는 터미널로 이동
  2. git pull origin master'origin'을 원격 이름으로 바꾸기
  3. 자격 증명을 요청합니다.입력합니다.

이상입니다.는 그 문제를 해결했습니다.

Windows 10의 경우:

  • 키를 누릅니다.
  • credit을 입력하면 제어판에 "Credential Manager"가 표시됩니다.
  • 클릭하여 관련 캐시된 자격 증명을 연 다음 제거합니다.그럼 다시 해보세요.사용자 ID와 비밀번호를 요청합니다.정확한 비밀번호를 입력하시면 됩니다.

제가 네트워크 비밀번호를 변경했을 때 저와 같은 일이 발생했습니다.

(이 답변은 GitHub에만 해당되지 않습니다. 대신 BitBucket을 사용했지만 개념이 동일하기 때문에 GitHub에서도 작동할 수 있습니다.)

저의 경우 비트버킷 앱 비밀번호를 사용하고 있었는데 항상 인증을 요청했습니다.

하루에 몇 번씩 당기고 밀기 때문에 자동 페치를 중지해도 문제가 해결되지 않고 매번 앱 비밀번호를 입력하는 것은 나쁜 일입니다.

앱 를 안전하지 않은, 가 사용하고이기도 합니다.credential.helper store텍스트로 암를일텍저장대고하사신용다니합로스반트호를 합니다.credential.helper wincred암호화되어 있습니다.

대화상자가 앱 비밀번호를 사용하는 대신 이해할 수 없는 이유로 브라우저를 사용하여 로그인을 요청했습니다.이제 더 이상 자격 증명을 요청하지 않습니다(작업에 사용하는 비트 버킷 계정이 기본 브라우저에 없고 대화 상자가 기본 브라우저를 사용하여 인증을 시도하기 때문에 일시적으로 기본 브라우저를 변경해야 했습니다).

이것은 나에게 효과가 있습니다.PAT를 한 번만 입력하면 됩니다.git config --글로벌 자격 증명.도우미 윈크레드

Git 명령어 위에 인증을 제공하도록 VS Code를 구성해야 합니다.

아래에는 확장 설정을 설정하는 방법이 나와 있습니다.

여기에 이미지 설명 입력

Visual Studio Code를 여는 사용자는 Git 명령을 실행하는 사용자와 동일한 사용자여야 합니다.그런 다음 터미널에서 다음 명령을 실행합니다.

git config --global credential.helper store
git pull

다음 작업에서는 Git 자격 증명을 요청하는 내용을 볼 수 없습니다.

Windows PC에 있는 경우 Git for Windows를 설치합니다.바로 그거야!

언급URL : https://stackoverflow.com/questions/34400272/visual-studio-code-is-always-asking-for-git-credentials

반응형