비밀번호를 묻는 거북이


84

방금 Git 작업을 시작했습니다. Windows 7을 사용하고 msysgit (1.7.8)과 Tortoisegit (1.7.6)을 설치했습니다. 저장소는 LAN을 통해 액세스 할 수있는 Linux 서버에 생성됩니다. 내가 직면 한 문제는 Tortoisegit을 사용하여 저장소를 복제 할 수 없다는 것입니다. 비밀번호를 묻고 어떤 비밀번호를 요구하는지 모르겠습니다. 동시에 Git Gui를 사용하여 저장소를 복제하고 모든 작업을 수행 할 수 있습니다. 아무도 Tortoisegit이 Git Gui가 아닌데 암호를 묻는 이유를 이해하는 데 도움을 줄 수 있습니까? Git과 Tortoisegit을 제거한 다음 다시 설치했지만 성공하지 못했습니다.

Tortoisegit 오류


git 서버가 pubkey 인증을 사용하고 있습니까?
Felix Yan

저장소의 동일한 복제본에서 TortoiseGit은 무엇을하고 Git GUI는 무엇을하고 있습니까?
manojlds

2
Tortoise Git을 마우스 오른쪽 버튼으로 클릭하면 설정을 클릭합니다. Git에는 링크-> Remote가 있습니다. 원격 목록에서 원점을 클릭합니다. 오른쪽에 URL이 표시됩니다. URL wright에서 사용자 이름 대신 : username : <your password>. 마지막으로 Tortoise Git에서 git 작업을 수행하면 암호에 대해 묻지 않는 것을 볼 수 있습니다.
kamaci

1
SSH 대신 http URI를 사용하고 있습니까? 그게 내 문제 였어요
CAD

우리 중 "특별한 것"(나 포함)을 위해 Tortoise Git Clone 창의 URL 창에 붙여 넣기 전에 명령 전면에서 'git clone'비트를 제거해야합니다. 그렇지 않으면 비슷한 문제가 발생합니다
icc97

답변:


131

동료가 문제를 해결했습니다. 단계 :

  1. 오른쪽 클릭-> TortoiseGit-> 설정-> 네트워크
  2. SSH 클라이언트가 가리키는 C:\Program Files\TortoiseGit\bin\TortoisePlink.exe
  3. 경로 변경 C:\Program Files (x86)\Git\bin\ssh.exe

대체 경로 : C:\Users\...\AppData\Local\Programs\Git\usr\bin\ssh.exe


그것은 거북이 버전 1.8.3에서 나를 위해 작동합니다 ...이 문제는 나를 미치게 만들었습니다! 지금 WindowsXP에 @ 32 비트 tortoisegit는 C와 함께 작동 : \ programmi \ 자식 \ 빈 \는 Windows7에 ssh.exe @ (64)가 toirtoiseplink.exe (기본값)과 함께 사용하기에 적합합니다
Evilripper

내 Windows 8 컴퓨터에서 SSH 클라이언트를 msysGit ssh.exe 파일로 지정하면 암호 쿼리가 전혀 표시되지 않을 때 작동했습니다. 다른 문제가 있지만,이 솔루션은 확실히 TortoiseGit을 가진 사람 경험 SSH 문제에 대한 가치의 시도이다
Icermann

1
나를 위해 이것은 도움이되지 않았습니다 (적어도 GitHub에 연결할 때 다른 저장소를 시도하지 않았습니다).
Suma

2
감사합니다. 완벽하게 작동했습니다. 비록 내 ssh.exe내 사용자 디렉토리에서 거짓말C:\Users\...\AppData\Local\Programs\Git\usr\bin
ppasler

7
@ppasler가 언급했듯이 ssh.exe는 이제 설치에 따라 C : \ Program Files (x86) \ Git \ usr \ bin \ ssh.exe 또는 그가 언급 한 위치에 있습니다.
Vlad Schnakovszki

33

사용자 이름 / 암호를 사용해야하는 경우 현재 # 2 답변보다 훨씬 간단한 솔루션이 있습니다.

Right-click --> Tortoise Git --> Settings --> Git --> Credential --> Choose "Wincred, all Windows users" --> Hit apply

다음에 저장소의 비밀번호를 입력하면 해당 비밀번호가 자동으로 저장됩니다.


사용자 이름 / 암호가 아닌 SSH 키가 필요한 저장소를 사용하는 경우 (OP의 원래 문제인 것처럼 들림) , 다음을 수행해야합니다.

  1. PuTTY gen에서 SSH 키를 엽니 다 (Tortoise Git와 함께 설치됨).
  2. PuTTY gen에서 키를 PuTTY 키로 저장합니다.
  3. 저장소에서 Right-click --> Tortoise Git --> Settings --> Git --> Remotes. 리모컨 (일반적으로 'origin')을 찾은 다음 2 단계에서 PuTTY 키를로드합니다.

제 경우에는 사용자 이름을 사용할 때만 작동합니다. 사용자 이메일 주소를 입력해도 작동하지 않으므로 명심하십시오.
Razze

3
이것은 가장 짧고 명확한 대답이었습니다. 감사합니다.
Alphas Supremum

이 정확한 답을 영원히 찾고있었습니다!
NielW

23

열쇠없이하기 위해 ...

폴더를 마우스 오른쪽 버튼으로 클릭합니다.
tortoiseGit-> settings-> Git-> Remote
Select origin (또는 기본 리모컨으로 레이블을 지정한 항목)을 선택하십시오.

URL에서이 형식을 사용하십시오.

Https : // USERNAME : PASSWORD @ URL

여기서 USERNAME은 사용자 이름입니다
. 콜론은 사용자 이름과 암호를 구분하며 반드시 있어야합니다.
PASSWORD는 암호입니다.
@ 자격 증명을
URL 과 구분합니다. URL은 .git 리소스에 연결하는 데 사용할 URL입니다.

Thanks goes to Kamaci


3
이 솔루션은 키에서도 작동합니다. Https : // USERNAME @ URL을 복제 하면 괜찮습니다.
Orace 2014

2
그렇습니다. 병합을 할 때 TortoiseGit은 전체 URL을 커밋 메시지 에 넣는 경향이 있기 때문에 이것을하지 마십시오 !
mwardm 2015

이것은 완벽한 솔루션입니다. 그러나 일반 텍스트이기 때문에 암호를 숨기는 방법이 있습니까?
Amit Kumar

1
암호에 @ 기호가 있으면 어떻게됩니까?
Hammad Dar

mingw64가 있고 다음 로그가 표시되기 때문에이 대답을 사용했습니다. Skipping command-line ' "C : \ Program Files \ Git \ mingw64 \ bin \ .. \ usr \ bin \ bash.exe"'( 'C : \ Program Files \ Git \ mingw64 \ bin \ .. \ usr \ bin \ bash.exe 'not found) 유효한 명령 줄이 필요합니다. 그에 따라 문자열 리소스 편집 (3x) 오류 : 프롬프트 스크립트 실행 실패 (종료 코드 1)
RW4

14

TortoiseGit으로 사용자 이름 및 비밀번호 저장

TortoiseGit에 로그인 정보를 저장하는 것은 매우 쉽습니다. 풀 또는 푸시를 할 때마다 사용자 이름과 비밀번호를 입력 할 필요가 없습니다.

  1. 다음 내용으로 _netrc라는 파일을 만듭니다.

    machine github.com
    로그인 yourlogin
    password yourpassword

  2. 파일을 C : \ Users \ (또는 다른 위치에 복사합니다.이 위치는 제가 저장 한 위치입니다)

  3. 명령 프롬프트로 이동하여 setx home C : \ Users \를 입력합니다.

참고 : Windows 7 이전 버전을 사용하는 경우 setx 명령이 작동하지 않을 수 있습니다. 대신 set을 사용하고 내 컴퓨터의 고급 설정을 통해 Windows에 홈 환경 변수를 추가하십시오.

신용 : http://www.munsplace.com/blog/2012/07/27/saving-username-and-password-with-tortoisegit/


1
잘 작동하지만 일반 암호를 암호화하는 방법이 있습니까? 일반 텍스트 파일에 github 비밀번호를 저장하는 것이 불편했습니다.
Dio Phung

@DioPhung 방금 말한 것을 생각해보십시오. 암호가 암호화 된 경우 이제 암호를 사용하기 위해 (새) 암호를 기억해야합니다. 암호를 기억할 필요가 없다면 (로컬 위협 관점에서) 암호가없는 것만 큼 좋습니다. 편리함이나 안전을 원합니다.
Camilo Martin

1
@DioPhung 로컬 관리자가 두렵다면 키로거를 쉽게 설치할 수 있습니다. 로컬 관리자는 데이터로 원하는 모든 작업을 수행 할 수 있습니다. 따라서 이들에 대한 모든 보안은 모호함을 통한 보안이 될 것입니다 (은행에서 사용하는 도구와 트릭조차도 지식이 풍부하고 확고한 로컬 관리자로부터 사용자를 보호 할 수 없습니다. 열심히 노력하십시오). 해시와 관련하여 무슨 뜻입니까? 해시는 되돌릴 수 없습니다. 그리고 암호 자체를 사용하여 암호화하는 경우 에도 매번 입력해야합니다. 따라서 처음부터 암호화하지 않는 것과 동일합니다.
Camilo Martin

1
@CamiloMartin 암호화에는 암호가 필요하지 않습니다. 암호보다 편리 할 수있는 시스템으로 인증하는 방법에는 여러 가지가 있습니다. 보안이 전부 또는 전부는 아닙니다.
adam

1
이 솔루션이 가능하지만 Windows PasswordVault에 암호를 저장하는 것이 좋습니다 . 이 기능은 2013 년 3 월 API git-credential-store 를 구현하여 TortoiseGit에서 사용할 수 있습니다 . 아마 더 쉬울 것입니다 : From within repo → Context-click → TortoiseGit → Settings → Git → Credential → wincred → OK그리고 당신은 끝났습니다. 관심있는 사람들을 위해이 질문에 대한 완전한 답변 을 썼습니다 .
adam

5

이를 수행하는 한 가지 방법은

  • PuttyGen을 사용하여 키 쌍 생성 (또는 이미 키가있는 경우 .ppk로 가져 오기)
  • peagent에 개인 키로드
  • gitosis 서버로 공개 키 가져 오기 (관리자에게 공개 키 제공)
  • 그런 다음 plink를 SSH 클라이언트로 사용하십시오.

plink는 기본적으로 peagent와 함께 작동하여로드 된 키를 검색합니다.

표준 퍼티 배포판에서 peagent 및 기타 제품과 함께 plink.exe를 찾을 수 있습니다.

그것을 사용하려면 다음으로 이동하십시오.

TortoiseGit 설정-> 네트워크-> SSH 클라이언트.

기본적으로 이것은 plink.exe에 대한 경로를 제공하는 대신 TortoisePlink.exe에 대한 경로를 포함합니다.

또는 msys (git) 배포에서 ssh (.exe)를 사용할 수 있지만 .ppk 형식 / Peagent 조합으로 개인 키를 사용할 수 없습니다. PuttyGen을 통해 키를 OpenSSH 형식으로 내보내거나 대신 ssh-keygen을 사용하여 키 쌍을 만들어야합니다.


"Plink에 대한 TortoisePlink 포인트 대신 SSH 클라이언트"란 무엇을 의미합니까? 이 SSH 프로그램은 어디에 있습니까?
Mikaël Mayer 2014

구두점이 없어서 죄송합니다. 그게 혼란의 원인이라고 생각합니다. 나는 대답을 업데이트했습니다
mzzzzb 2014

설정에서 아무것도 변경할 필요가 없습니다. SSH를 통해 리포지토리를 복제 할 때 개인 Putty 키를 제공하면됩니다. https가 아닌 복제 창에 SSH 끝점을 입력해야합니다.
MoonStom

4

인증을 자동화하려면 다음을 사용하십시오.

  1. 다른 사람들이 이미 지적한 SSH 키 또는
  2. 내장 신임 헬퍼.

저장소가 중요하지 않은 경우가 아니면 텍스트 파일에 암호를 저장하지 마십시오.

TortoiseGit> 1.8.1 은 기존 로컬 Windows Credential Store에 로그인 정보에 액세스하고 저장하는 로컬 API를 제공 하는 도우미 git-credential-winstore 를 설치합니다 .

제어판 → 사용자 계정 → 자격 증명 관리자로 이동하여 "Windows 자격 증명"을 선택하면 저장된 자격 증명을 볼 수 있습니다. "git :"로 시작하는 항목은 git-credential-winstore에서 가져온 것입니다.

다음과 같이 저장소별로 wincred를 설정할 수 있습니다.

(GUI)

  1. 파일 탐색기에서 저장소로 이동합니다.
  2. 컨텍스트 클릭 → TortoiseGit → 설정 → Git → 자격 증명
  3. 자격 증명 도우미 : wincred-이 저장소 만
  4. 다음에 리포지토리로 인증 할 때 자격 증명이 저장됩니다.

(CLI, POSH)

  1. cmdkey /add:git:https://USERNAME@github.com /user:USERNAME /pass:PASSWORD
  2.  

    @"
    [credential]
            helper = wincred
    "@ | Out-File -FilePath $repoRoot\.git\config -Append
    

cmdkey /list:git:*
일단 저장되면 암호가 cmdkey ( http://ss64.com/nt/cmdkey.html )로 표시되지 않음을 사용하여 저장소에 저장된 모든 자격 증명을 나열 할 수 있습니다.

암호와 함께 모든 자격 증명을 나열하려면 Windows API 를 사용해야합니다 . powershell의 경우 CredMan이 있습니다 .

. .\CredMan.ps1
.\CredMan.ps1 -ShoCred

4

나는 같은 문제가 있었다. 내 환경은 TortoiseGit 2.3.0.0 및 git 버전 2.11.0.windows.1이 설치된 Windows 10입니다.

다음은 내 문제를 해결했습니다.

  • 오른쪽 클릭-> TortoiseGit-> 설정-> 네트워크
  • SSH 클라이언트를 C : \ Program Files \ Git \ usr \ bin \ ssh.exe로 업데이트합니다.

여기에 이미지 설명 입력


3

URL과 창 제목 TortoisePlink는 모두 거북이가 ssh를 전송 프로토콜로 사용하려고 함을 나타냅니다. git은 파일 시스템 액세스 및 ssh 액세스를 포함하여 둘 이상의 전송 프로토콜을 지원합니다. 귀하의 질문에서 파일 시스템 액세스로 원격 저장소에 액세스하고 싶다고 설명하고 있습니다. 이 경우 원격 URL은 다음과 같아야 file://server/path/to/repo합니다. 원격 저장소 URL을 다시 확인하십시오.


3

이 문제를 해결하기 위해 수행 한 작업 (Windows) :

  1. PuttyGen을 열고 내 ssh 키를 가져 와서 퍼티 키로 변환하고 .ssh 폴더 (% userprofile % .ssh)에 공개 및 비공개 부분을 모두 저장합니다.
  2. Putty를 열고 Connection-> SSH-> Auth로 이동 한 다음 여기에 개인 키 파일을 설정하십시오.
  3. 세션으로 돌아가서 기본 설정을 선택하고 저장을 누르십시오.
  4. 이제 다시 복제를 시도하면 ssh 키의 암호를 묻는 메시지가 표시되고 입력하면 작동합니다.

2

Pramodtech의 답변 은 현재 버전의 공식 Windows Git 클라이언트에서 작동 하지 않았습니다. 지금 Git\usr\bin대신에 ssh 실행 파일을 저장합니다 Git\bin(2015 년 8 월에 출시 된 버전 2.5 이후).

따라서 TortoiseGit > Settings > NetworkSSH 클라이언트 경로로 이동하여 다음 과 같이 변경하십시오.

C:\Program Files\Git\usr\bin\ssh.exe (또는 Git 설치 경로가 무엇이든)

여기에 이미지 설명 입력


1

불행히도 Windows 8이 설치된 컴퓨터에서 SSH 클라이언트를 다시 가리키는 솔루션이 작동하지 않았습니다. 나를 위해 문제를 해결 한 해결책은 다음과 같습니다. http://www.munsplace.com/blog/2012/07/27/saving-username-and-password-with-tortoisegit/


: 단지 포스트 링크는 몇 가지 상황에 맞는 추가하지 마십시오 meta.stackexchange.com/questions/8231/...
icc97

Anthony Keane이 위에서 말한 것과 같은 대답입니다.
rakensi

1

여기에 제공된 솔루션 중 어느 것도 나를 위해 일했고 온라인에서 찾은 솔루션에 대한 많은 실망 후에 마침내이 문제를 내 컴퓨터에서 수정할 수있었습니다.

TortoiseGit 퍼티가 항상 하나의 특정 키를 사용하도록 설정 한시기 또는 방법을 모르겠습니다. 물론 새 키 쌍으로 다른 서버에 연결하려고 할 때 모든 문제가 발생했습니다.

따라서 문제를 해결하는 방법과 내가 가진 것과 같은 문제가 실제로 있는지 확인하는 방법 :

  1. 여기plink.exe 에서 컴퓨터에 다운로드
  2. 다운로드 한 동일한 디렉토리에서 Windows 명령 프롬프트를 엽니 다. plink.exe
  3. 다음 명령을 실행하십시오. plink -v <path_to_your_git_clone_repo_link>
  4. 출력을보고 다음과 같은 줄이 있는지 확인하십시오. Reading private key file "C:\Path\To\Some\privateKey.ppk"
  5. 이와 같은 줄이 있고 사용하려는 퍼티 키 파일이 아니라면 다음 번에 plink 가로 드 할 수 없도록 해당 파일의 이름을 변경 / 삭제 / 이동하십시오.
  6. 문제가있는 파일의 이름을 바꾼 후 모든 것이 예상대로 작동해야합니다. 지점 3에서 명령을 실행하면 plink가 해당 ppk파일을 로드 할 수 없다는 것을 볼 수 있으며 그 후에는 다음과 같은 결과를 출력해야 Pageant is running. Requesting keys.합니다.

즉,이 "글로벌 기본 퍼티 키"를 비활성화 할 수있는 방법을 아는 사람이 있으면 의견에 알려 주시면이 답변을 정보로 업데이트하겠습니다.


1

repo 원격 출처의 URL로 인해이 문제가 발생할 수 있습니다. 완벽하게 작동하는 이전 저장소와 방금 복제 한 새 저장소가있어 암호를 요청했습니다.

의 정보를 비교했을 때 Settings > Git > Remote > Url나는 일한 것이 다음과 같음을 알았습니다.

git@github.com:githubAccount/repoName.git

작동하지 않는 새 https주소 에는 주소가 있습니다.

아래 스크린 샷도 참조하십시오.

여기에 이미지 설명 입력


1

Tortoise GIT DOS 명령 줄은 내 개인 및 공개 키를 C : \ Users \ .ssh 디렉토리에 배치 한 후 내 암호를 요구하지 않습니다. 저는 Windows 7을 사용하고 있습니다.


1

같은 문제가있었습니다. 제 경우에는 거기에 입력 할 수있는 암호가 없었습니다. 연결이 SSH로 구성되었지만 repo에 대해 정의 된 키가 없습니다.

확인 : TortoiseGIT SSH 구성 . 이 지침은 cloudforge를위한 것이지만 다른 서비스의 경우에도 동일하게 수행해야하는 경우 git 저장소 공급자에게 공개 키를 제공하기 만하면됩니다.


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