Github에서 화면의 지시를 따르고 새 저장소를 밀 때 사용자 이름 / 암호를 요구하는 이유는 무엇입니까?


298

나는 github에서 조직의 소유자이며 방금 레포를 만들고 밀어 넣으려고했지만 SSH를 잘 사용할 수는 있지만 사용자 이름을 묻는 문제가 발생했습니다.

$ ssh -T git@github.com
Hi Celc! You've successfully authenticated, but GitHub does not provide shell access.
$ git add .
$ git commit -m 'first commit'
[master (root-commit) 3f1b963] first commit
 6 files changed, 59 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 main.js
 create mode 100644 package.json
 create mode 100644 readme.markdown
 create mode 100644 views/index.ejs
 create mode 100644 views/layout.ejs
$ git remote add origin https://github.com/WEMP/project-slideshow.git
$ git push -u origin master
Username for 'https://github.com':

내가 뭘 잘못하고 있죠? 이것은 전에 나에게 일어난 적이 없지만 최근에는 git 1.7.10.3으로 업그레이드했습니다.

답변:


662

HTTP 대신 SSH를 사용하지 마십시오

변화

https://github.com/WEMP/project-slideshow.git 

git@github.com:WEMP/project-slideshow.git

당신은 .git/config파일 에서 할 수 있습니다


1
감사! 방금 stackoverflow.com/a/10126412/29347 을 읽은 후에 이것을 알아 냈습니다 .github이 일반적으로 HTTPS로 repo remote를 제공한다고 생각하지 않아 혼란이 생겼습니다.
Kit Sunde

2
복제 URL을 복사하는 버튼을 클릭하여이 옵션을 변경할 수 있습니다.
Derek Adair

MacOS 용. 최신 macos로 업그레이드 할 때 문제가 발생합니다. stackoverflow.com/a/39616339/1445102
1Rhino

12
stackoverflow.com/questions/10126381/…에git remote set-url origin git@github.com:user/repo.git 자세히 설명 된대로 수행 할 수도 있습니다.
마지막으로

54

나는이 같은 문제가 있었고 https로 복제 된 bitbucket 저장소에서 왜 발생하지 않았는지 궁금해했습니다. 조금 살펴보면 BB 저장소의 구성에 내 사용자 이름이 포함 된 URL이 있음을 알았습니다. 그래서 나는 더 이상 사용자 이름 프롬프트가 아닌 내 GH 저장소에 대한 구성과 voila를 수동으로 편집했습니다. 저는 Windows에 있습니다.

편집 your_repo_dir/.git/config(기억 : .git폴더가 숨겨져 있음)

변화:

https://github.com/WEMP/project-slideshow.git

에:

https://*username*@github.com/WEMP/project-slideshow.git

파일을 저장하십시오. DO가 git pull그것을 테스트합니다.

이를 수행하는 올바른 방법은 아마도 git bash 명령을 사용하여 설정을 편집하는 것이지만 파일을 직접 편집하는 것은 문제가되지 않은 것 같습니다.


사용자 이름을 포함 시키면 OS 키 체인에 의해 처리 될 것입니다. 메모장이나 vim / emacs / nano / vi를 사용하여 파일을 편집하는 것에는 차이가 없습니다. 기술적 스노 버에 대해서는 걱정하지 않아도됩니다. 어쨌든 평범한 텍스트 파일 일뿐입니다.
Kit Sunde

20

이에 대한 공식 답변 은 다음과 같습니다 .

Git에서 GitHub와 상호 작용할 때마다 사용자 이름과 비밀번호를 묻는 메시지가 표시되면 저장소에 HTTPS 복제 URL을 사용하는 것입니다.

HTTPS 원격 URL을 사용 하면 몇 가지 장점이 있습니다. SSH보다 설정이 쉽고 일반적으로 엄격한 방화벽과 프록시를 통해 작동합니다. 그러나 리포지토리를 가져 오거나 누를 때마다 GitHub 자격 증명을 입력하라는 메시지가 표시됩니다.

비밀번호를 저장하도록 Git을 구성 할 수 있습니다. 설정하려면 비밀번호 캐싱 설정 에 대한 모든 내용을 읽으십시오 .


1
감사. 나는 Github과 함께
말하면

질문이 냐고 묻기 때문에 질문에 대한 답입니다 .
eli

14

@Ianl의 답변을 개선하면 ,

2 단계 인증을 사용하는 경우 비밀번호 대신 토큰을 사용해야합니다. 여기서 토큰을 생성 할 수 있습니다 .

사용자 이름과 비밀번호 모두에 대한 프롬프트를 사용하지 않으려면 다음과 같이 URL을 설정할 수 있습니다.

git remote set-url origin https://username:password@github.com/WEMP/project-slideshow.git

URL에는 사용자 이름과 비밀번호가 모두 있습니다. 또한 .git/config파일에 현재 설정이 표시되어야합니다.


20200128 업데이트 :

구성 파일에 비밀번호를 저장하지 않으려는 경우 개인 토큰을 생성하고 비밀번호를 토큰으로 바꿀 수 있습니다. 자세한 내용 은 다음과 같습니다 .

다음과 같이 보일 것입니다-

git remote set-url origin https://username:token@github.com/WEMP/project-slideshow.git

안전한가요? 누군가 내 컴퓨터에서이 정보에 액세스 할 수 있습니까?
Akaisteph7

예, .git/config파일 에 일반 텍스트로 저장되어 있기 때문에 컴퓨터에서 액세스 할 수 있습니다
kaushal

11

추가 참고 사항 :

이미 원격 ($ git remote add origin ...)을 추가하고 특정 원격을 변경 해야하는 경우 새롭고 개선 된 repo URL을 다시 추가하기 전에 먼저 원격 제거 ($ git remote rm origin)를 수행하십시오 "origin"은 원격 저장소의 이름입니다).

원래 예제를 사용하려면 :

$ git remote add origin https://github.com/WEMP/project-slideshow.git
$ git remote rm origin
$ git remote add origin https://github-username@github.com/WEMP/project-slideshow.git

4
리모컨을 제거하지 않아도됩니다. 당신은 URL을 변경할 수 있습니다 :git remote set-url origin https://github-username@github.com/WEMP/project-slideshow.git
shovavnik

8

HTTPS를 사용하는 경우 URL이 올바른지 확인하십시오. 예를 들면 다음과 같습니다.

$ git clone https://github.com/wellle/targets.git
Cloning into 'targets'...
Username for 'https://github.com': ^C

$ git clone https://github.com/wellle/targets.vim.git
Cloning into 'targets.vim'...
remote: Counting objects: 2182, done.
remote: Total 2182 (delta 0), reused 0 (delta 0), pack-reused 2182
Receiving objects: 100% (2182/2182), 595.77 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1044/1044), done.

1
좋은 지적이야! URL에 오타가있는 경우 리포지토리가 존재하지 않는다는 메시지 대신 '사용자 이름'을 입력하라는 메시지가 표시됩니다.
dmitrii

5

방금 github.com 관리자로부터 다음과 같은 내용의 이메일을 받았습니다. "SSH 프로토콜을 사용해야하는 특별한 이유가없는 한 HTTPS URL을 사용하는 것이 좋습니다. HTTPS는 안전하고 설정하기 쉬우므로 새 저장소가 생성 될 때이를 기본값으로 설정합니다. "

패스워드 프롬프트는 실제로 일반적인 github.com 로그인 정보를 받아들입니다. 비밀번호 캐싱 설정 방법에 대한 자습서는 https://help.github.com/articles/set-up-git#password-caching 에서 찾을 수 있습니다 . 튜토리얼의 단계를 따르고 나에게 도움이되었습니다.



4

HTTPS 방식을 사용하고 있기 때문 입니다. HTTPS를 사용 하려면 푸시 또는 풀 을 시도 할 때마다 계정 액세스 권한을 입력해야 하지만 SSH 라고하는 한 가지 방법이 있으며 git 에게 알려주십시오.이 PC에 대한 내 계정으로 권한을 부여하고 요청하지 않습니다. 나를 다시 사용자 액세스에 대한 . 사용하려면 SSH 키 를 생성 하고 Github 계정에 한 번만 추가해야합니다 . 그렇게하려면 다음 단계를 수행하십시오.

Github 용 SSH 키를 생성하는 방법


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