programing

누를 때마다 사용자 이름을 묻는 Git

lovejava 2023. 4. 29. 08:08

누를 때마다 사용자 이름을 묻는 Git

내가 내 기록을 밀어넣으려고 할 때마다 그것은 두 가지 모두를 요구합니다.username & password.

매번 비밀번호를 다시 입력하는 데는 문제가 없지만 사용자 이름을 입력하는 데는 문제가 있습니다.사용합니다https내 저장소를 복제할 수 있습니다.

하면 하면 Git가 요청되지 수 있을까요?username각각의 git push.

는 리눅스가 이지만 윈도우의 는 IIRC입니다.git push암호만 요청합니다.

편집(진행자 및 의견 제시에 따라 @dk14 기준)

을 : 을 사용합니다.credential.helper store는 완전히되지 않은 상태(" 그대로됩니다.~/.git-credentials특히 고용주가 보안 문제에 대해 무관용인 경우 아래 설명 섹션 또는 "연결됨" 섹션의 답변을 참조하십시오.

사용자 이름만 생략(암호가 아님)하는 실제 OP의 질문에 답변하지 않습니다.@grawity의 정확한 문제를 가진 독자들에게 이 대답은 도움이 될 것입니다.


원답(@Alexander Zhu):

다음 명령을 사용하여 자격 증명을 저장할 수 있습니다.

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

또한 나는 당신이 읽기를 제안합니다.
$ git help credentials

은 이작은다수있다니에서 할 수 ..git/config로컬 리포지토리의 파일입니다.이 파일에는 'url'이라는 항목이 있는 'remote'라는 섹션이 포함되어 있습니다.'url' 항목은 당신이 말하는 저장소의 https 링크를 포함해야 합니다.

호스트 'url' 앞에 사용자 이름을 붙이면git더 이상 사용자 이름을 묻지 않아야 합니다.다음은 예입니다.

url = https://username@repository-url.com

GitHub에 대한 이 문서에 설명된 대로 새 SSH 키를 추가합니다.

Git에서 여전히 사용자 이름과 비밀번호를 요청하면 변경해 보십시오.https://github.com/git@github.com: URL 격원 URL:

$ git config remote.origin.url 
https://github.com/dir/repo.git

$ git config remote.origin.url "git@github.com:dir/repo.git"

Git 저장소로 영구 인증하는 중

다음 명령을 실행하여 자격 증명 캐싱을 사용하도록 설정합니다.

$ git config credential.helper store
$ git push https://github.com/repo.git

Username for 'https://github.com': <USERNAME>
Password for 'https://USERNAME@github.com': <PASSWORD>

캐시 만료도 지정해야 합니다.

git config --global credential.helper "cache --timeout 7200"

자격 증명 캐싱을 사용하도록 설정하면 자격 증명이 7200초(2시간) 동안 캐시됩니다.


자격 증명 읽기 문서

$ git help credentials

제가 찾은 가장 쉬운 방법은 다음 명령을 사용하는 것이었습니다.

git config --global credential.https://github.com.username <your_username>

이것은 사이트별로 작동하며 글로벌 Git 구성을 수정합니다.

변경 내용을 보려면 다음을 사용합니다.

git config --global --edit

ssh 대신 https를 사용하는 경우 다음에서 "url"을 편집할 수 있습니다..git/config 사용자 701648이 말하는 것처럼, 그러나 만약 당신이 원한다면, 비밀번호도 추가할 수 있습니다.

url = https://username:password@repository-url.com
git config --global credential.helper cache

Git 구성 파일에 다음과 같은 것을 넣어 지정된 사이트의 모든 리포지토리에 대한 사용자 이름을 설정할 수 있습니다."https://example.com "과 "나"를 실제 URL과 실제 사용자 이름으로 변경하고 싶을 것입니다.

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

(이것은 "git help credentials"에서 직접 가져온 것입니다.)

복제된 저장소 변경:

git remote set-url origin git@github.com:gitusername/projectname.git

캐시된 자격 증명을 사용하면 시간 초과 기간을 설정할 수 있으므로 번거로움이 덜합니다.윈도우즈 자격 증명 도우미를 사용하는 경우 가장 쉬운 방법입니다(특히 SSH가 차단된 경우).

http 대신 SSH를 사용하고 있는지 확인합니다.이 SO 답변을 확인하십시오.

사용자 701648의 응답 외에도 다음 명령을 사용하여 프로젝트 폴더 대신 홈 폴더(모든 프로젝트에 대해 전역)에 자격 증명을 저장할 수 있습니다.

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

가장 쉬운 방법은 다음을 만드는 것입니다.~/.netrc다음 내용을 포함하는 파일:

machine github.com
login YOUR_GITHUB_USERNAME
password YOUR_GITHUB_PASSWORD

(여기에 표시된 대로: https://gist.github.com/ahoward/2885020)

다음을 입력하여 아무도 암호를 읽을 수 없도록 이 파일에 대한 사용 권한을 닫을 수도 있습니다.

chmod 600 ~/.netrc

내가 git pull,git pull origin xxx,git만 입력하면 사용자 이름과 비밀번호를 모두 입력합니다.

git config credential.helper store

그건 효과가 있다.

SSH 버전을 사용하면 암호에 문제가 없습니다.단 한 번 SSH 키를 생성하면 이 PC가 이 Github 계정에서 작동하고 다시는 액세스(이 PC에 대한 액세스)에 대해 묻지 않는다는 을 Git에 알립니다.

Github용 SSH를 생성하는 방법

  1. git config credential.helper store

  2. git push https://github.com/xxx.git

  3. 그런 다음 사용자 이름과 암호를 입력합니다.

  4. 다 했어요.

사용자 이름을 입력하지 않고 암호를 입력하라는 메시지가 표시되지 않도록 하려면 사용자 이름을 포함하여 리포지토리를 복제하면 됩니다.

git clone user_name@example.gitrepo.com/my_repo.git

퀵 메소드

내부에서 작업할 때 Git의 URL을 가져옵니다.

git config remote.origin.url

그러면 :

git config credential.helper store

git push "url of your git"

마지막으로 사용자 이름과 암호를 묻습니다.

다 했어요.

ssh+key authentication 더신 수있방 법는할보다 더 할 수 있는 입니다.https+credential.helper

다음과 같이 모든 리포지토리에 대해 HTTPS 대신 SSH를 사용하도록 구성할 수 있습니다.

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

url.<base>.insteadOf여기에 설명되어 있습니다.

2021년 8월 13일부터 github은 Git 작업을 인증할 때 더 이상 계정 암호를 허용하지 않으며 GitHub.com 에서 인증된 모든 Git 작업에 대해 토큰 기반 인증을 사용해야 합니다.원하는 경우 SSH 키를 계속 사용할 수도 있습니다.

따라서 지정된 인증 컨텍스트에 대한 사용자 이름의 정적 구성(github 사용 시):

https://username:<personal-access-tokens>@repository-url.com

참고로, 우리는 다음을 사용하고 있습니다.<personal-access-tokens>그리고 아닌<password>

개인 액세스 토큰을 만드는 방법에 대한 자세한 내용은 설명서를 참조하십시오.

github 설명서에는 다음과 같이 나와 있습니다.

HTTPS를 통한 GitHub...Git를 사용하여 GitHub을 인증할 때마다 자격 증명 도우미로 캐시하지 않는 한 GitHub으로 인증할 자격 증명을 입력하라는 메시지가 표시됩니다.

...

SSH 사용 중...Git를 사용하여 GitHub을 인증할 때마다 키를 저장하지 않은 경우 SSH 키 암호를 입력하라는 메시지가 표시됩니다.

Github에서는 Connecting over HTTPS를 권장합니다. 아마도 Git Credential Manager Core를 사용하기를 원하기 때문일 것입니다.그러나 Git Credential Manager Core는 Windows 및 macOS에서 실행됩니다.Linux 지원은 (게시 시점까지) 초기 미리 보기입니다.

그래서 Git와 SSH 솔루션만 제공하겠습니다.

Git의 설명서에서는 Git 자격 증명을 반복적으로 사용하여 동일한 자격 증명을 입력하지 않는 방법에 대해 설명합니다.

솔루션 1

자격 증명 도우미를 사용하여 짧은 시간 동안 메모리에 암호를 캐시합니다.

git config --global credential.helper cache

솔루션 2

자격 증명 도우미를 사용하여 암호를 저장합니다(디스크에 무제한).

git config --global credential.helper 'store --file ~/.my-credentials'

문서에서 자격 증명이 저장될 위치를 찾을 수 있습니다( --file로 명시적으로 설정되지 않은 경우).

참고: gitcredentials가 완전히 암호화되지 않은("있는 그대로") 자격 증명을 저장하는 문제를 해결하기 위해 사용하기 전에 항상 파일을 암호화하고 암호를 해독할 수 있습니다.

솔루션 3

새 SSH생성 및 SSH 에이전트에 추가할 때의 직접 복사 붙여넣기 작업입니다.여기서 읽는 것보다 링크를 따라가는 것이 좋을 것 같습니다.어쨌든 여기에 명령어를 복사하여 붙여넣겠습니다.

  1. 를 키 ssh-keygen -t ed25519 -C "your_email@example.com"하여 Ed25519 대신 RSA를 .ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

  2. GitHub의 계정에 SSH 키를 추가합니다.

  3. 않은 합니다. ssh-agent를 합니다.$ eval "$(ssh-agent -s)"

  4. SSH 를 SSH를 합니다.$ ssh-add ~/.ssh/id_ed25519다른 이름으로 키를 생성했거나 다른 이름의 기존 키를 추가하는 경우 명령에서 id_ed25519를 개인 키 파일의 이름으로 바꿉니다.

2021년 8월 13일부터 비밀번호 기반 로그인은 더 이상 허용되지 않습니다.이제 토큰/SSH 기반 인증을 사용해야 합니다.

누를 때마다 확인 메시지가 표시되지 않으려면 GitHub CLI를 설치한 다음 자격 증명을 캐시하십시오.

git config --global credential.helper store
gh auth login   

그리고 지시를 따릅니다. 꼭 확인해 보세요.Authenticate Git with your GitHub credentials?와 함께Y.

그냥 도망쳐도 돼요

git config --global credential.helper wincred

시스템에 윈도우즈용 GIT를 설치하고 로그인한 후.

그것을 해결하는 적절한 방법은 그것을 바꾸는 것입니다.httpssh.

이것을 사용할 수 있습니다.git remote rm origin원격 저장소를 제거합니다.

그런 다음 ssh sintax(github에서 복사할 수 있음)로 다시 추가할 수 있습니다. git remote add origin git@github.com:username/reponame.git.

이 기사를 확인하십시오.https://www.freecodecamp.org/news/how-to-fix-git-always-asking-for-user-credentials/

Git Repository 사용자 이름과 암호를 디스크에 저장하는 데 사용합니다.코드를 누르는 동안 Sogit에서 매번 사용자 이름과 암호를 묻지 않음

로컬 스토리지에 자격 증명을 저장하려면 다음 명령을 따릅니다.

$ git config credential.helper store
or
$ git config --global credential.helper store

이제부터 Git는 처음 액세스할 때 각 URL 컨텍스트에 대해 ~/.git-credentials 파일에 자격 증명을 기록합니다.이 파일의 내용을 보려면 표시된 것처럼 cat 명령을 사용할 수 있습니다.

$ cat  ~/.git-credentials

24시간 전체에 대한 인증 정보를 설정합니다.

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

그렇지 않으면 1시간 동안 86400초를 3600초로 교체합니다.

OR

'캐시' 인증 도우미에 대한 모든 구성 옵션:

git help credential-cache

자세한 내용은 https://docs.github.com/en/get-started/getting-started-with-git/caching-your-github-credentials-in-git 에서 확인하시기 바랍니다.

(Mac OS에만 해당)

Windows Linux의 경우 아래에 언급된 Github의 설명서 링크를 참조하십시오.

Github 설명서에서:문서 링크

Git에서 GitHub 암호 캐싱

  • osxkeychain 자격 증명 도우미를 사용하려면 Git 1.7.10 이상이 필요합니다.

    Git 버전 확인하기git --version

  • osxkeychain 도우미가 이미 설치되어 있는지 확인하려면:

    git credential-osxkeychain

    다음과 같은 응답을 받으면 이미 설치되어 있고 Mac에서 사용할 준비가 되어 있습니다.

    > Usage: git credential-osxkeychain <get|store|erase>

    위와 같이 응답이 없으면 다음 명령을 실행하여 설치할 수 있습니다.

    git credential-osxkeychain

  • git 자격 증명에 osxkeychain을 글로벌하게 사용하도록 git에게 지시하기:

    git config --global credential.helper osxkeychain

    체인에 자격 증명을 저장하기 전에 메시지가 한 번 표시됩니다.

다음 명령을 사용하면 15분 동안 시간을 초과할 수 있습니다.

$ git config --global credential.helper cache

아래 명령을 사용하여 시간을 수정할 수도 있습니다.이것은 1시간 동안의 예입니다.

$ git config --global credential.helper 'cache --timeout=3600'

로컬로 캐시하려면 이 명령을 한 시간 동안 사용하여 시간을 초과합니다.

$ git config credential.helper 'cache --timeout=3600'

이 문제는 계정에 대해 2-팩터 인증(2FA)을 사용하도록 설정했을 때 발생했습니다.올바른 자격 증명을 입력하면 단말기 인증이 인증 코드를 요청하지 않기 때문에 인증이 실패합니다.

저는 제 계정에 대해 2FA를 비활성화해야 했습니다.이 작업을 수행하는 동안 자격 증명을 단 한 번만 입력해야 했습니다.git push그 이후로 그것들은 필요하지 않았습니다.

SSH가 아닌 HTTPS를 사용하여 다운로드할 때 발생합니다. 제가 구현한 가장 쉬운 방법은 사용자 이름과 암호를 요청한 후 컴퓨터에서 디렉토리를 제거하고 복제 SSH 주소를 가져오는 것입니다.해결되었습니다.

HTTP 대신 SSH를 사용하여 복제하기만 하면 사용자 이름이나 암호를 묻지 않습니다.

또한 SSH를 사용하여 다운로드할 때에도 이중 인증을 사용하면 문제가 발생하므로 이를 사용하지 않도록 설정하면 문제가 해결됩니다.

  1. 윈도우즈 자격 증명 관리자를 열고 일반 자격 증명에서 git:https://dev.azure.com/orgname 을 제거합니다.단계를 보려면 명령줄에서 GIT를 사용한 TFS가 작동하지 않는 이유를 살펴보십시오.
  2. 를 합니다..git-credentialsC:\Users\{username}.
  3. https://git-scm.com/download/win 에서 Git 최신 버전을 업데이트해야 합니다.

저는 오늘 이 문제에 직면했습니다.2020년 11월에 이 문제가 발생할 경우 Git 버전을 업데이트해야 합니다.저는 이것에 대해 알려주는 이메일을 받았습니다.github 팀이 보낸 이메일이 정확히 이렇습니다.

최근 이전 버전의 Git for Windows를 사용하여 GitHub에 대한 인증을 시도한 것을 발견했습니다.GitHub은 사용자가 Git for Windows를 사용할 때 인증하는 방법을 변경했으며, 이제 GitHub에 인증하려면 웹 브라우저를 사용해야 합니다.웹 브라우저를 통해 로그인하려면 사용자가 Git for Windows의 최신 버전으로 업데이트해야 합니다.다음 사이트에서 최신 버전을 다운로드할 수 있습니다.

Git for Windows를 최신 버전으로 업데이트할 수 없는 경우 다음 링크에서 자세한 정보와 제안된 해결 방법을 확인하십시오.

이러한 변경 사항에 대해 질문이 있거나 도움이 필요한 경우 GitHub 지원팀에 연락하여 추가 지원을 제공합니다.

감사합니다, 깃허브팀

언급URL : https://stackoverflow.com/questions/11403407/git-asks-for-username-every-time-i-push