개인 RSA 키를 찾을 수있는 곳을 Git for Windows에 알리려면 어떻게해야합니까?


487

내 Git 설정은 Linux에서 잘 실행되지만 Windows (Git for Windows 및 TortoiseGit 사용 )에서 설정을 시도 할 때 개인 SSH 키를 어디에 넣을 지 알지 못합니다 (또는 더 나은 방법은 ssh어디에 있는지 알려줍니다) 위치). Windows 용 Git을 설치하는 동안 표준 ssh.exe 옵션을 사용하고 있습니다. 서버에서 암호 인증 (RSA 대신)을 허용하면 설치 프로그램이 제대로 실행됩니다.


같은 문제가 있습니다. "Git For Windows"와 함께 설치된 "Git Bash"프로그램을 사용하여 공개 키를 "root"로 사용하여 dev 상자에 ssh를 사용할 수 있지만 "git"으로 로그인 할 수 없습니다. "root"에서 "git"사용자로 "authorized_keys"파일을 복사하고 소유자와 권한을 올바르게 설정했지만 "root"가 정확히 동일한 "authorized_keys"파일과 함께 작동 할 때 "git"으로 로그인 할 수없는 이유는 무엇입니까? 대신 "git"은 모든 개인 키를 전달합니다. 이는 "root"에서 작동하는 것과 동일하며 암호를 요구합니다. 그건 그렇고 Centos 5.5 서버입니다.

@fuzzy lollipop : git 사용자의 authorized_keys 파일에 대한 올바른 권한이 있습니까? chmod 600이어야하고 git 사용자가 소유해야합니다. 루트 사용자가 소유 한 경우 작동하지 않습니다
Dan McClain

예, 모든 파일과 디렉토리가 올바른 소유자와 권한입니다

답변:


486

힘내 배쉬

msysgit을 실행 중이고 Git Bash를 실행하려는 경우 (TortoiseGit보다 권장하지만 GUI보다 CLI에 더 의존합니다) Git의 홈 디렉토리가 무엇인지 파악해야합니다 Bash를 시작한 다음 입력하십시오 pwd(Windows 7에서는 C:\Users\phsr생각 과 같습니다 ). Git Bash에있는 동안해야합니다 mkdir .ssh.

홈 디렉토리와 그 .ssh아래 에 폴더가 있으면 PuTTYgen을 열고 이전에 작성한 키 (.ppk 파일)를 열려고합니다. 키가 열리면 키를 선택 Conversions -> Export OpenSSH key하여에 저장하려고합니다 HOME\.ssh\id_rsa. 해당 위치에 키가 있으면 Git Bash가 키를 인식하여 사용합니다.

참고 : 의견에 따르면 모든 경우에 해당되는 것은 아닙니다. OpenSSH 키를 Program Files\Git\.ssh\id_rsa(또는 Program Files (x86)\Git\.ssh\id_rsa) 에 복사해야 할 수도 있습니다 .

TortoiseGit

TortoiseGit을 사용하는 경우에는 pacey 's direction을 통해 SSH 키를 설정해야합니다 . TortoiseGit을 사용하는 모든 저장소에 대해이를 수행해야합니다.


4
저장소가있을 때까지 Tortoisegit에 대한 pacey의 지침이 작동하지 않습니다 ( '원격'구성 설정은 repo를 수행하지 않으면 표시되지 않기 때문에) 가능하면 아마도 저장소를 처음에 가져올 수 없습니다. ' t 원점에서 복제하려면 자신을 인증하십시오. 교활한!
Kylotan

43
GitBash를 사용하면 ~/.ssh/id_rsa파일 을 복사해야한다는 것을 알았습니다. Program Files\Git\.ssh\id_rsa이는 약간 혼란 스럽지만 IntelliJ 및 Windows cmd는 키 인증을 사용하는 자식 저장소로 푸시 할 수 있습니다.
JP.

7
마찬가지로. 방금 git-for-windows를 설치했는데 cmd.exe에서 실행 중입니다. 나는 파일을 넣어 필요 id_rsaid_rsa.pub로를 c:\program files (x86)\Git\.ssh. .ssh디렉토리가 이미 존재했다. 고마워, JP
Cheeso

5
두 번째 단락은 황금색이었습니다. :)
Bjørn

4
@Damon : id_rsa확장명 이 없어야합니다 . 그것은 파일 이름입니다, 그것은 디렉토리가 아닙니다
Dan McClain

107

Windows 용 Git과 함께 제공되는 내장 SSH 클라이언트를 사용하여 Git SSH 클라이언트가 키를 찾을 수 있도록 HOME 환경 변수를 설정해야합니다.

예를 들어, Windows Vista 설치의 setx HOME c:\Users\admin\경우 명령 행에서 발행 하여 수행됩니다 .

개인 키가 암호로 보호되어 있지 않으면 하루를 보내고 Git 문제를 해결했습니다. ssh-agent를 사용하려면 평소와 같이 ssh-agent cmd.exe를 실행하고 ssh-add를 실행할 수 있습니다.

창 을 깜박 이지 않기 위해 모든 Git / SSH 도구는 cmd.exe에서 실행되어야합니다 .

이것이 제대로 작동하지 않으면, GIT_SSH 를 조정하여 plink를 사용할 수 있습니다 . 모든 SVN + ssh 튜토리얼을 참조하십시오. 이것은 기본적으로 설정에 필요한 배관과 동일합니다.


16
이것은 내가 git bash가 아닌 Windows 명령 프롬프트를 사용하려고했기 때문에 찾고 있던 것입니다.
John Ruiz

멋지고 쉬운 수정이지만 이것 없이는 알아 내기 어려웠을 것입니다!
thaddeusmt

중요한 것은 HOME =과 c : \ 사이에 공백이 없어야한다는 것입니다. Oct의 솔루션은 나를 위해 속임수를 사용했습니다. :-)
Lutz

2
setx HOME c:\Users\admin` command doesn't seems to be working in Git Bash. You have to use 대신 cmd`.
trejder

2
+1GIT_SSH=c:\pathto\plink.exe
Nick Grealy 4

54

TortoiseGit의 키 위치는 다음과 같은 방법으로 지정할 수 있습니다.

  • 탐색기 창을 엽니 다.
  • 컨텍스트 메뉴를 열고 TortoiseGit설정을 탐색하십시오.
  • 지금 열린 창에서 GitRemote로 이동하십시오.
  • 해당 입력 상자에서 PuTTY 키의 경로를 설정하십시오.

스크린 샷은 다음과 같습니다.

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


8
또한 개인 키를 다른 형식의 '.ppk'형식으로 변환해야하는 경우 THIS
Tariq M Nasim

그것은 나를 위해 일했다.
Maxim Eliseev

6
Git> Remote는 저장소를 성공적으로 복제 한 후에 만 ​​나타납니다.
Steve Pitchers

5
훨씬 쉬운 해결책은 git에서 모든 것이 올바르게 작동하도록 설정하고 (openSSH 사용) TortoiseGit에 git에서 사용하는 ssh.exe를 사용하도록 지시하는 것입니다. stackoverflow.com/a/33328628/318317을 참조하십시오 . 이렇게하면이 문제를 한 번만 수정하면됩니다.
Daniel Rose

50

이전 답변 중 어느 것도 나를 위해 일하지 않았습니다. 결국 나를 위해 일한 것이 여기 있습니다. 입력해야 할 내용을 알고 있다면 실제로는 매우 간단합니다. PuTTY가 필요하지 않습니다.

  • 힘내 배쉬 프롬프트를 엽니 다
  • 'ssh-keygen'을 입력하십시오
    • 기본 위치를 수락하십시오
    • 빈 암호를 선택하십시오 (따라서 '모든 질문에'입력 '을 누르십시오).
  • 이제 공개 키를 서버에 복사하십시오 (예 : scp ~ / .ssh / id_rsa.pub someuser@someserver.com : ~).

그것은 당신의 컴퓨터에서 이루어졌습니다. 이제 ssh대상 서버로 들어간 다음

mkdir -p ~/.ssh
cd ~/.ssh
cat ../id_rsa.pub >> authorized_keys
rm ../id_rsa.pub

그게 다야! 끝났습니다! Git Bash에서 다음을 수행하여 테스트하십시오.

ssh someuser@someserver.com ls

Git 서버의 홈 디렉토리에 파일이 나열되면 완료된 것입니다!

GitHub의 경우 서버에 대한 쉘 액세스 권한이 없지만 웹 사이트를 사용하여 키를 업로드 할 수 있으므로 '지금 서버에 복사'비트의 경우 다음을 수행하십시오.

  • Git Bash에서 'cat ~ / .ssh / id_rsa.pub'을 입력하고 결과를 선택한 다음 클립 보드에 복사하십시오.
  • GitHub 웹 사이트에서 '계정 설정', 'SSH 및 GPG 키'로 이동하여 '새 SSH 키'를 클릭 한 후 키를 붙여 넣으십시오.

8
암호없이 키를 만들지 마십시오. 모든 사람이 개인 키의 기본 위치를 알고 있다는 점을 제외하고는 텍스트 파일에 암호를 입력하는 것과 같습니다.
GregB

14
당신은 잘못된 질문에 대답하고 있습니다. Q는 기존 개인 키를 가리키는 방법입니다.
Orangutech

7
@GregB, 다음과 같이 봅니다. 암호가없는 키를 만드는 서버는 랩톱만큼 안전하며 랩톱의 보안 경계를 확장 한 것입니다. 실제로 내 홈 디렉토리는 암호화되어 있지 않기 때문에 ;-) 따라서 내 노트북의 암호화 된 홈 파티션만큼 안전합니다. (물론 귀하의 의견과 다를 수 있습니다!)
Hugh Perkins

3
@GregB 편집증에 빠지지 마십시오! :] 물론 암호로 보호 된 키를 사용하는 것이 암호가없는 것을 사용하는 것보다 훨씬 안전하지만 암호가없는 키가 텍스트 파일에 암호를 저장하는 것만 큼 쉬운 것은 아니라고 주장하는 것은 명백한 거짓입니다. 사용자가 암호로 보호 된 키를 사용하도록 권장하는 많은 안내서를 보았지만 암호없이 키를 사용하는 것이 전혀 안전하지 않다는 주장은 결코 보지 못했습니다. 또한 일부 시스템은 키 암호를 기억하고 사용자가 입력 한 키를 사용할 때마다 암호를 묻는 솔루션을 지원하지 않습니다. 이 상황에서 SSH 키를 사용하는 것은 의미가 없습니다.
trejder

4
원래 질문에서 벗어난 대화를 위해 SSH 키는 암호보다 확실히 암호로 안전하지만 SSH 키를 암호화하지 않으면 보안이 위험에 노출됩니다. 개인적 접근 방식은 SSH 에이전트를 사용하여 하루 초에 키를 잠금 해제하여 암호 해독 된 키를 메모리에 보관하여 하루 종일 비밀번호를 다시 입력 할 필요가 없도록하는 것입니다. @Hugh Perkins가 말했듯이, 나는 역설적이지만, 당신은 모두 내가 / 우리보다 보안 요구 사항을 더 잘 알고 있습니다. :).
GregB

38

OpenSSH 도구와 함께 msysgit을 사용하는 경우 키를 가리키는 ~/.ssh/id_rsaGit 구성을 작성하거나 작성 ~/.ssh/config해야합니다.

다음은 올바른 사용자 이름과 기본 키 이외의 키를 사용하는 Bitbucket의 Git 구성 예입니다 (SSH 연결 용 하나의 키와 Git 계정 용 하나의 키를 유지하는 경우).

~ / .ssh / config :

Host bitbucket.org
    Hostname bitbucket.org
    User git
    IdentityFile /C/keys/yourkey.key

Git Bash에 들어가면 두 개의 명령을 실행하여 키를 현재 세션의 ssh-agent에 추가하여 키 암호를 반복해서 입력하지 않아도됩니다.

eval `ssh-agent`
ssh-add /C/keys/yourkey.key

1
나는 이것을했지만 github.com을 위해 : Host github.com IdentityFile ~ / .ssh / github_rsa
Sarah Vessels

1
경로에 공백이 있으면 따옴표를 사용해야합니다. IdentityFile "/ C / My Keys / key"
r03

이 날 빨리 다른 PC에서 키 존재하여 연결 허용하기 때문에이 방법을 선호
키릴 Gusyatin

내 .gitconfig에는 섹션이 있습니다. 어떤 섹션에서이 호스트를 배치해야합니까?
Steve Yakovenko

16

방금 % HOME % = % HOMEPATH %를 설정했습니다.

이는 시스템에 로그인 한 모든 사용자가 작업 할 수있는 이점이 있습니다 (각각 별도의 .ssh 폴더를 갖습니다).

Vista에서 :

  1. 컴퓨터를 마우스 오른쪽 버튼으로 클릭
  2. 속성을 선택하십시오
  3. 고급 시스템 설정을 클릭하십시오
  4. 환경 변수를 클릭하십시오
  5. 하단 섹션 (시스템 변수)에서 새로 만들기를 클릭하십시오.
  6. 변수 이름 유형의 경우 : HOME
  7. 변수 경로 유형의 경우 : % HOMEPATH %
  8. 확인을 클릭하십시오

6
내 경우에는 HOME = % USERPROFILE %
igor

1
%HOMEPATH%에 소스가 아닌, 그래서 만약 드라이브 문자를 포함하지 않는 C:당신이 씁니다 C:%HOME%.
Graeme Perrow

set %HOME%=%HOMEPATH%나를 위해 일했다! 감사합니다!!
teng

7

개인 키는 워크 스테이션의 SSH 에이전트에 추가해야합니다. 이를 달성하는 방법은 사용중인 git 클라이언트에 따라 다를 수 있지만 puTTY 및 관련 에이전트 (대회)가 당신을 위해 속임수를 쓸 수 있습니다. 공식 바이너리 및 소스에 대한 링크는 다음과 같습니다.

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html


위의 내용은 Windows 용 Git을 사용하고 있으며 퍼티 대신 ssh.exe (git w / git 패키지)를 사용하고 있다고 언급했습니다. 개인 키를 추가하는 표준 방법이 있어야합니다. 방법을 찾을 수없는 것 같습니다. 소프트웨어를 전환하면 실제로 로그인 할 수 있지만 표준 Git 설정으로 소프트웨어를 전환 할 수있는 방법이 있어야합니다.
바이너리 유기

죄송하지만 Windows에서만 작동하지 않으며 Linux에서만 작동합니다. 그러나 키는 SSH 에이전트에 있어야합니다. 그 줄을 따라 agent.exe 또는 무언가가 있습니까?
Declan Shanaghy

1
예, 설정은 리눅스 쪽의 케이크였습니다. 그러나 불행히도 Windows에서 작동해야합니다. Windows 상자의 git / bin 폴더에 여러 개의 ssh 관련 실행 파일이 있습니다 (ssh, ssh-add, ssh-agent, ssh-keygen & ssh-keyscan). 어떻게 만드는지 모르겠습니다. 무엇이든하세요. 그들은 cmd 창을 깜박이고 바로 닫았습니다. 나는 충격을 받았다.
바이너리 유기

8
Pageant가 실제로 문제를 해결했습니다. 시작 메뉴의 시작 폴더 ( C:\Users\owen.blacker\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)를 가리키는 바로 가기가있어서 시작 "C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerPersonal.ppk" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerWork.ppk"시 SSH 키를로드하므로 GIT가 제대로 작동합니다. –o)
Owen Blacker

@OwenBlacker OMFG! 당신은 확실히해야 전체 크기로이 댓글 쓰기 대답을 ! 이것이 실제로 나를 도와주고 내 문제를 해결 한 유일한 해결책입니다 ! 안타깝게도 +1 만 줄 수 있습니다! :]
trejder

6

필자의 경우 Docker 컨테이너에서 Git for Windows를 사용하고있었습니다 windowsservercore.

내 Git은 Chocolatey 에 의해 설치되었습니다 C:\Program Files\Git.

파일 C:\Program Files\Git\etc\ssh\ssh_config을 다음과 같이 업데이트해야 했습니다.

Host example.com
   Identityfile ~/.ssh/id_rsa

그런 다음 키를 사용할 수있었습니다. C:\Users\<user>\.ssh\id_rsa

Windows 용 OpenSSH와 함께 창에 Git을 사용하는 경우. 힘내는 여전히 자체를 사용하고 있습니다 ssh.

또한 ssh-keyscan host.com > known_hostsOpenSSH에서 사용하려는 경우 (Windows에서) stdout의 파이프 출력 keyscan이 인코딩을 UCS-2로 변경 하기 때문에주의해야 하지만 OpenSSH는 UTF-8 만 읽을 수 있습니다! 따라서 known_hosts파일 인코딩 을 변경하십시오 .


이것은 도움이되었지만 id_dsa 키를 사용하는 사람은 호스트 아래에 "PubkeyAcceptedKeyTypes ssh-dss"를 추가해야합니다.
Michael Russo

4

좋아, 나는 제안을 보았다 ..

그러나 내 개인 SSH 키를 공용 폴더에 배치하는 것은 좋은 생각이 아니기 때문에 알려진 호스트가 어디에 있는지 찾기 시작했습니다.

따라서 SSH 키를 올바르게 보호하려면 다음 디렉토리에 키를 넣어야합니다.

Windows 7, 8 및 8.1 32 비트의 경우 :

C : \ Users \\ AppData \ Local \ VirtualStore \ Program Files \ Git \

Windows 7, 8 및 8.1 64 비트 :

C : \ Users \\ AppData \ Local \ VirtualStore \ 프로그램 파일 (x86) \ Git \


이것이 내 Win7 컴퓨터에서 가장 간단한 솔루션이었습니다. 당신처럼, 나는 검색했다 known_hosts. 충분합니다 C:\Users\Dave\AppData\Local\VirtualStore\Program Files (x86)\Git\.ssh. 내 키 파일 (id_rsa)을 해당 디렉토리에 배치하면 ssh는 불만없이 찾을 수있었습니다. 나는 약간의 독서를했다-이것은 Windows가 금지 된 영역 (예 : "C : \ Program Files \")에 쓰려고 시도하는 (레거시) 소프트웨어를 처리하는 방법이므로 Git의 ssh는 VirtualStore 디렉토리 인 Windows에 쓰고 있다는 것을 완전히 알지 못합니다. 투명하게 처리하고 있습니다. 최소한 이러한 파일은 사용자에게 속합니다!
DaveGauer

4

가장 효과적인 방법은 Pageant를 사용하는 것입니다. 세션을 시작할 때마다 한 번만 암호문을 한 번만 쓸 수 있기 때문입니다. 여기에있는 모든 답변이 너무 짧았으므로 여기에 자세한 안내서를 게시 할 것입니다.

  1. 다운로드 pageant.exe, puttygen.exe, putty.exeplink.exe퍼티의 웹 사이트에서. 에 배치 C:\puttyTools디렉토리.
  2. 를 실행하십시오 puttygen.exe.
  3. 버튼을 클릭하십시오 Generate.
  4. 프로그램에서 요청한대로 진행률 표시 줄이 가득 찰 때까지 창 상단에서 마우스를 움직입니다.
  5. 암호를 입력하고 다음 텍스트 상자에서 반복하십시오.
  6. "개인 키 저장"을 클릭하십시오. 이 파일을 저장하는 일반적인 디렉토리는 %USERPROFILE%\_ssh(내 컴퓨터에서이 디렉토리에 매핑 됨 C:\Users\andres\.ssh\)입니다. 당신이 키를 부르는 것은 중요하지 않지만 데모를 위해 그것을 호출 할 것 github.ppk입니다. 이 파일의 확장자는 .ppk 여야합니다.
  7. PuTTYgen의 상단 텍스트 상자에 텍스트를 복사하고 Public key for pasting into OpenSSH authorized_keys fileGitHub 설정에서 새 SSH 키에 붙여 넣습니다. 키가있는 시스템을 설명하는 제목을 지정하십시오 (예 : "Work laptop").
  8. 를 실행 pageant.exe하면 새로운 시스템 트레이 아이콘이 나타납니다.
  9. 아이콘-> 키 추가를 마우스 오른쪽 단추로 클릭하십시오.
  10. ppk 파일을 찾고 암호를 입력하십시오.
  11. (응용 프로그램에 대한보고를 통해 새로운 사용자 환경 변수를 작성 Environ찾을 수 WindowsMenu을 통해 Edit environment variables for your account) GIT_SSH = "C:\puttyTools\plink.exe"SVN_SSH = "C:\puttyTools\PuTTY\plink.exe"
  12. putty.exe를 열고 Git 리포지토리를 호스팅하는 호스트에 연결하십시오. 예를 들어 SSH를 통해 github.com에 연결을 시도하면 서버의 지문을 승인 할 것인지 묻는 대화 상자가 나타납니다. 예를 클릭하십시오.
  13. MINGW64Git 콘솔 의 새 인스턴스를 실행 하고 명령을 작성하여 환경 변수가 있는지 확인하십시오 env | grep -i ssh.
  14. 모든 준비가되어 있어야합니다. 호스트에서 Git + SSH 프로토콜로 복제하십시오.

(원본으로 결합 된이 두 안내서에서 처음 추출되었습니다 : Windows 용 Git을 설정 하고 PuTTY Plink / Pageant를 사용하도록 MinGW-W64 + MSYS를 구성 하는 방법 .)


3

Windows 용 GitHub와 Windows 용 Git GUI를 혼합 할 때 Git GUI에서 사용자 이름과 비밀번호를 묻는 메시지가 계속 표시되는 문제가 발생할 수 있습니다. 이를위한 해결책은 원격 URL https:(Windows 용 GitHub가 작성하는 것)을 Git 프로토콜로 변경하는 것입니다. .git구성 파일 의 디렉토리에서 다음을 찾으십시오.

[remote "origin"]
   url = https://github.com/**username**/**reponame**.git
   fetch = +refs/heads/*:refs/remotes/origin/*

다음으로 변경하십시오.

[remote "origin"]
    url = git@github.com:**username**/**reponame**.git
    fetch = +refs/heads/*:refs/remotes/origin/*

예, 매우 짜증납니다. Windows GUI 용 github으로 repo를 복제하는 것은 자연스럽고 쉽습니다. 그러나 git shell 외부에서 git cui를 사용할 때 실패했습니다. git 쉘의 git 명령이 https url과 어떻게 작동하는지 궁금합니다.
hiroshi

SSH는 항상 접두사 git@{SERVER URL}입니까?
nmz787

그렇습니다. 내가 본
것이라면

이미 이것을 가지고 있었다 – 아직도 나에게 항상 묻는다
Ian Grainger 9

3

파일의 표준 위치는입니다 %USERPROFILE%\.ssh.

%USERPROFILE%Unix의 $ HOME과 같습니다 (일반적으로와 같은 것으로 매핑 c:\users\youruserid).

표준 명령 행 Unix 스타일 도구 인 Git과 함께 제공된 SSH 도구를 사용하는 경우 여기 에서 내 스크립트 와 같은 것을 사용 하여 모든 쉘에서 ssh-agent로 작업 할 수 있습니다 .


미래의 독자들에게는와 동등한 %USERPROFILE% is the equivalent of $HOME것이 아닙니다$HOME . Windows로 포팅 된 많은 악의적 인 Linux 응용 프로그램은 둘을 동일 하게 취급하지만 동일하게 취급 해서는 안됩니다 .
Micah Zoltu

미카, 그 의도의 차이를 알 수 있습니까? 또한 의도가 다른 경우에도 모든 도구가 다른 도구를 사용하는 경우 효과적으로 동등한 도구가 아닌 것 같습니다.
Eric Blade

Linux %USERPROFILE%와 동일한 방식으로 Windows에서 사용 하는 도구는 $HOMEWindows 개발에 대한 문서화 된 모범 사례 / 권장 사항을 위반하고 있습니다 (MS에서 오래 전에 게시하고 시간이 지남에 따라 업데이트 됨). 이를 수행하는 많은 도구가 있지만이를 따르는 주장은 "수영장에있는 X 개 친구와도 마찬가지입니다."라는 주장과 매우 ​​흡사합니다. USERPROFILE사용자가 생성 / 저장 한 문서 저장하는 위치입니다 (예 : 저장 대화 상자). APPDATA사용자 별 구성 데이터 용입니다. LOCALAPPDATA사용자 별 캐시 및 대용량 파일 용입니다. PROGRAMDATA컴퓨터 전체 구성 및 캐시 용입니다.
Micah Zoltu

일반적으로 USERPROFILE과 오작동하는 유일한 도구는 Linux 개발자가 작성하고 Windows로 이식 한 도구입니다. 개발자는 아마도이 중 많은 것을 사용하므로 "모두가하고있는 것"과 같은 느낌이 들지만 개발 툴링 생태계 외부에서는 대부분의 Windows 응용 프로그램이 실제로는 좋은 시민입니다. 마이크로 소프트조차도 때로는 올바른 장소에 물건을 넣지 않는 실수를합니다 (거대한 회사입니다). 일반적으로 문제를 지적하면 문제를 해결하고 OS 지침을 따르려고 노력합니다.
Micah Zoltu

1
(죄송합니다, 의견에 StackExchange 문자 제한). 다음은 폴더에 대한 자세한 내용과 각 항목에 대한 간략한 설명입니다. 소모품 블로그 게시물을 비롯하여 다른 리소스도 있지만 기술적으로 가장 정확한 내용은 다음과 같습니다. technet.microsoft.com/en-us/library/cc749104(v=ws.10).aspx
Micah Zoltu

2

나는 비슷한 문제가 있었고 여기에 대한 답변으로 문제를 해결하지 못했습니다. 내 키 페어는 원래 빈 암호로 생성되었습니다. (나도 알아, 바보)

새 키 페어를 만들고 공개 키를 GitHub에 업로드하면 작업이 다시 시작되었습니다.


1
이. ughhhhhhhhhhhhh. 작별 2 시간
특종


1

키 경로와 키 파일 이름을 모두 지정할 수 있습니다 (우분투에서). 예를 들면 다음과 같습니다.

ssh -i /home/joe/.ssh/eui_rsa

이것은 절대적으로 문제를 해결하고 원하는 곳에 키를 저장할 수있게합니다.
DaveGauer

문제는 구체적으로 창문에 관한 것이었다. 우분투 컴퓨터에서 이런 식으로 작동하지만 GIT_SSH_COMMANDWindows 컴퓨터에서 무엇을 설정해야하는지 말할 수 없습니다 .
mjaggard

1

Pageant ( PuTTY 번들 과 함께 제공되는 SSH 에이전트 )가 문제를 해결합니다.

시작 메뉴의 시작 폴더 ( C:\Users\owen.blacker\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)에을 가리키는 바로 가기가 "C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerPersonal.ppk" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerWork.ppk"있으므로 시작시 SSH 키를로드하고 Git이 "작동합니다": o)


4
GIT_SSH가 TortoisePLink.exe로 설정 된 것과 같이이 작업을 수행하기 위해 올바른 다른 설정이 필요하다고 생각합니다. 과거에는 과거에 효과가 있었지만 다른 컴퓨터에서 종종 문제가 발생합니다. :-(
Simon East

Pageant에서 '파일을 열 수 없습니다'라는 메시지가 나타납니다. (TotoiseGit에 사용하면서 올바르게 설정되어 있음을 알고 있습니다. (
Ian Grainger

1

많은 답변이 이것을 말하지만, 나를 위해 충분히 빠르지 않습니다!

msys (표준 Windows 콘솔)를 사용하는 Windows에서 C:\Users\{you}\.ssh\id_rsa

기본적으로 설치된 키 스캔을 방해하지 않으며 (적어도 새 랩톱에서는 아닙니다) 특별히 필요합니다. id_rsa

Windows 10 64 비트 용 루비 MSYS CLI에서 개인 작업 저장소를 복제하려는 경우이 문제가 발생했습니다.


0

Windows 7/8을 사용하는 경우 C : \ Users \ Your_User_Name.ssh를 확인하십시오. id_rsa 파일을 여기에 복사하여 붙여 넣으면 기본적으로 작동합니다.


0

Windows에서 SSH를 사용할 때 한 가지 실수는 Git Bash 클라이언트를 통해 키를 사용하려고 시도했을 때 ~ / .ssh 내의 모든 파일이 잘못된 권한 이었지만, 문제.

테스트와 마찬가지로 ~ / .ssh 디렉토리의 모든 항목을 chmod 600으로 설정했는지 확인하십시오.


0

Windows 컴퓨터에 필요한 권한이 있고 정책에 따라 허용되는 경우 특히 Linux에 대한 사전 경험이 있다고 생각하면 Cygwin ( https://cygwin.com/ )을 설치하는 것이 좋습니다 . Cygwin을 사용하면 다른 Linux / Unix 시스템에서와 마찬가지로 ssh 키를 처리 할 수 ​​있습니다. 또한 Linux의 거의 모든 cli 도구에 액세스 할 수 있습니다.


1
이와 같은 제안을 의견으로 제시하는 것이 합리적입니다. 그러나 질문에 명시 적으로 git for windows를 요청하면 이것을 답변으로 게시 할 때 다운 투표가 예상됩니다.
강탈

0

TortoiseGit을 사용하면 리포지토리 복제시 사용할 키를 지정할 수 있습니다. "Load Putty Key"를 확인 .ppk하고 스크린 샷과 같이 파일을 찾으십시오 .https://i.stack.imgur.com/lAyzT.png


비활성화 된 경우 확인 Settings... -> Network -> SSH clientC:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe
Nikita Bosik

0

위의 문제를 해결하여 수정했습니다.

~ / .ssh / config

파일을 넣어 :

IdentityFile C:\Users\adria\.ssh\mysshkey

0

Declan의 답변에 대한 귀하의 의견을 읽고 먼저 명령 프롬프트를 열고 (시작 → 실행cmd ) 그 git / bin 폴더로 이동하여를 실행하십시오 ssh-keygen. 이론적으로는 RSA 키를 생성하여 적절한 디렉토리에 배치합니다. 그런 다음 방금 찾아서 공개 키를 세계와 공유해야합니다.

윈도우가 "깜박이는"이유는 Windows가 프로그램을 실행하고 실행되면 실제로 출력이 필요할 때 명령 프롬프트를 닫고 명령 프롬프트를 닫는 것입니다.


0

Windows에서 Git Gui의 v0.17을 사용하여 다음 메뉴 명령을 클릭했습니다. 도움말SSH 키 표시 .

OpenSSH 공개 키라 는 제목 대화 상자가 나타납니다 . 키를 생성하여 클립 보드에 복사했습니다. 그럼 난에 설치-SSH 지침에 따라 계속 githelp을 에서 3 단계 이후. 이후 Git Gui는 GitHub와 자동으로 통신했습니다. 자격 증명을 입력 할 필요가 없습니다.


0

내 Windows 7 시스템에서 Git Gui는 userprofile/.ssh폴더 또는보다 구체적으로 RSA 키를 찾습니다 c:/users/yourusername/.ssh/.

내 설정의 까다로운 부분은 hostmonster의 공유 호스트가 키를 수락하도록하는 것입니다. 내가 그것을 작동시킬 수있는 유일한 방법은 Git Gui를 사용하여 (키없이) 키 쌍을 만든 다음 제어판, ssh, manage keys를 통해 공개 키를 복사하여 붙여 넣는 것입니다.

처음부터 시작하려면 메뉴로 이동하여 망할 놈의 GUI의 키를 만들어야합니다 도움말 , 표시 SSH 키 , 다음 키를 생성합니다 . 이제 .ssh디렉토리 에 두 개의 새로운 키가 있습니다 . .pub파일을 열고 내용을 복사하십시오.

공유 호스트의 제어판에 로그인하여 SSH , SSH 키 관리가져 오기 키로 이동하십시오 . 공용 상자에 붙여넣고 확장자없이 올바른 이름을 지정하십시오 id_rsa. 이제 인증 관리 링크를 사용하여 키를 인증해야 authorized_keys파일에 연결됩니다 .

이제 Git Gui와 Git Bash는 비밀번호를 입력하지 않고도 SSH를 사용하여 푸시 할 수 있습니다. 이상하게도 Linux를 실행하는 자체 서버에서 Git Bash와 Git Gui을 통해 SSH를 사용하여 푸시를 할 수있었습니다. 공유 호스팅은 나에게 적합했습니다. 이 문제를 해결하는 데 몇 시간의 시행 착오가 필요했기 때문에 이것이 누군가에게 도움이되기를 바랍니다.


0

Windows 용 Git 명령 행을 사용하는 경우 다음과 같이 수행 할 수 있습니다.

를 열고 cmd.exe실행하십시오 setx HOME c:\PATH_TO_PRIVATE_KEY.

.ssh내부에 새 폴더 (존재하지 않는 경우)를 c:\PATH_TO_PRIVATE_KEY만들고 id_rsa파일 (개인 키)을 복사하십시오 .

끝난. 이제 Git 명령 행을 정상적으로 사용할 수 있습니다.


0

msysgit의 OpenSSL을 / 배쉬 망할 놈의 경험 (안 퍼티의 가용 스루풋은) 당신의에 대한 검색 순서이다 .ssh/다음과 같이 폴더입니다.

  1. %HOME%/.ssh/
  2. %HOMEDRIVE%%HOMEPATH%/.ssh/
  3. %USERPROFILE%/.ssh/

따라서 HOME다른 사람들 중 하나가 당신이 기대하지 않는 경우에 너무 많은 사람들이 설정을 제안하는 이유 는 무엇입니까? 더 중요한 것은 자신을 확인할 수 있다는 것입니다. ssh -v다음과 같이 공개 키 인증을 사용하는 서버에 대한 사용을 디버그 합니다.

$ ssh -v git@github.com
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Reading configuration data /d/.ssh/config
...
debug1: identity file /d/.ssh/identity type -1
debug1: identity file /d/.ssh/id_rsa type 1
debug1: identity file /d/.ssh/id_dsa type -1
...
debug1: Next authentication method: publickey
debug1: Trying private key: /d/.ssh/identity
debug1: Offering public key: /d/.ssh/id_rsa
..
Hi kcd83! You've successfully authenticated, but GitHub does not provide shell access.

우리 ssh는 모호한 드라이브를 검색하는 것을 발견 했으며 이전 답변 중 우리가 본 것을 설명하는 것 같지 않았습니다.

때때로 %HOMEDRIVE%%HOMEPATH%매핑 된 네트워크 드라이브 (예입니다 H:/네트워크 / 파일 서버에 문제가있는 경우에 불필요한 장애를 일으키는) 경우에도, %USERPROFILE%/.sshC:/Users/Username/.ssh및 로컬 키가 있습니다. 원격 홈 드라이브 확인 %HOME%%USERPROFILE%중지하도록 설정 합니다 .


0

PuTTY 에이전트 (대회)를로드하고 PuTTY로 생성 한 개인 키를 서버에 추가 할 수도 있습니다.

힘내는 이것을 인식하고 푸시 / 풀에 사용합니다.


0

필요에 따라 Windows에서 TortoiseGit과 Git Bash를 사용하고있었습니다. TortoiseGit에 모든 것을 추가했는데 정상적으로 작동했지만 키가 올바른 디렉토리에 있어도 Git Bash가 선택하지 않았습니다. Git Bash 에서이 작업을 수행해야합니다.

ssh-add C:\\Users\\<YOUR_USER>\\.ssh\\id_rsa

물론 \\구분자 로 사용 하는 것을 기억하면서 키가있는 곳으로 경로를 변경할 수 있습니다 .


0

Windows 용 Git을 사용하는 경우 SSH 키가 생성되면 SSH 키를 ssh-agent에 추가해야합니다.

새 SSH 키 생성 및 ssh-agent에 추가를 참조하십시오 .

eval $(ssh-agent -s)

// Tell where the keys are located

ssh-add ~/.ssh/id_rsa

서버 결함에 오신 것을 환영합니다. 이 질문은 이미 몇 년 전에 널리 받아 들여진 대답을 가지고 있습니다. 새로운 질문이나 크게 개선 될 수있는 질문을 계속 찾으십시오.
Matthew Wetmore

1
널리 받아 들여진 대답은 저에게 효과가 없었지만이 대답은 저에게 효과적이지 않았습니다. 누군가 키를 ssh 에이전트에 추가해야한다는 것을 아는 데 도움이 될 수 있다고 믿으며 두 가지 지침으로 수행 할 수 있습니다.
Matoeil
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.