내 Git 설정은 Linux에서 잘 실행되지만 Windows (Git for Windows 및 TortoiseGit 사용 )에서 설정을 시도 할 때 개인 SSH 키를 어디에 넣을 지 알지 못합니다 (또는 더 나은 방법은 ssh
어디에 있는지 알려줍니다) 위치). Windows 용 Git을 설치하는 동안 표준 ssh.exe 옵션을 사용하고 있습니다. 서버에서 암호 인증 (RSA 대신)을 허용하면 설치 프로그램이 제대로 실행됩니다.
내 Git 설정은 Linux에서 잘 실행되지만 Windows (Git for Windows 및 TortoiseGit 사용 )에서 설정을 시도 할 때 개인 SSH 키를 어디에 넣을 지 알지 못합니다 (또는 더 나은 방법은 ssh
어디에 있는지 알려줍니다) 위치). Windows 용 Git을 설치하는 동안 표준 ssh.exe 옵션을 사용하고 있습니다. 서버에서 암호 인증 (RSA 대신)을 허용하면 설치 프로그램이 제대로 실행됩니다.
답변:
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을 사용하는 경우에는 pacey 's direction을 통해 SSH 키를 설정해야합니다 . TortoiseGit을 사용하는 모든 저장소에 대해이를 수행해야합니다.
~/.ssh/id_rsa
파일 을 복사해야한다는 것을 알았습니다. Program Files\Git\.ssh\id_rsa
이는 약간 혼란 스럽지만 IntelliJ 및 Windows cmd는 키 인증을 사용하는 자식 저장소로 푸시 할 수 있습니다.
id_rsa
와 id_rsa.pub
로를 c:\program files (x86)\Git\.ssh
. .ssh
디렉토리가 이미 존재했다. 고마워, JP
id_rsa
확장명 이 없어야합니다 . 그것은 파일 이름입니다, 그것은 디렉토리가 아닙니다
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 튜토리얼을 참조하십시오. 이것은 기본적으로 설정에 필요한 배관과 동일합니다.
setx HOME c:\Users\admin` command doesn't seems to be working in Git Bash. You have to use
대신 cmd`.
GIT_SSH=c:\pathto\plink.exe
TortoiseGit의 키 위치는 다음과 같은 방법으로 지정할 수 있습니다.
스크린 샷은 다음과 같습니다.
이전 답변 중 어느 것도 나를 위해 일하지 않았습니다. 결국 나를 위해 일한 것이 여기 있습니다. 입력해야 할 내용을 알고 있다면 실제로는 매우 간단합니다. PuTTY가 필요하지 않습니다.
그것은 당신의 컴퓨터에서 이루어졌습니다. 이제 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의 경우 서버에 대한 쉘 액세스 권한이 없지만 웹 사이트를 사용하여 키를 업로드 할 수 있으므로 '지금 서버에 복사'비트의 경우 다음을 수행하십시오.
OpenSSH 도구와 함께 msysgit을 사용하는 경우 키를 가리키는 ~/.ssh/id_rsa
Git 구성을 작성하거나 작성 ~/.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
방금 % HOME % = % HOMEPATH %를 설정했습니다.
이는 시스템에 로그인 한 모든 사용자가 작업 할 수있는 이점이 있습니다 (각각 별도의 .ssh 폴더를 갖습니다).
Vista에서 :
%HOMEPATH%
에 소스가 아닌, 그래서 만약 드라이브 문자를 포함하지 않는 C:
당신이 씁니다 C:
에 %HOME%
.
set %HOME%=%HOMEPATH%
나를 위해 일했다! 감사합니다!!
개인 키는 워크 스테이션의 SSH 에이전트에 추가해야합니다. 이를 달성하는 방법은 사용중인 git 클라이언트에 따라 다를 수 있지만 puTTY 및 관련 에이전트 (대회)가 당신을 위해 속임수를 쓸 수 있습니다. 공식 바이너리 및 소스에 대한 링크는 다음과 같습니다.
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
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)
필자의 경우 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_hosts
OpenSSH에서 사용하려는 경우 (Windows에서) stdout
의 파이프 출력 keyscan
이 인코딩을 UCS-2로 변경 하기 때문에주의해야 하지만 OpenSSH는 UTF-8 만 읽을 수 있습니다! 따라서 known_hosts
파일 인코딩 을 변경하십시오 .
좋아, 나는 제안을 보았다 .
.
그러나 내 개인 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 \
known_hosts
. 충분합니다 C:\Users\Dave\AppData\Local\VirtualStore\Program Files (x86)\Git\.ssh
. 내 키 파일 (id_rsa)을 해당 디렉토리에 배치하면 ssh는 불만없이 찾을 수있었습니다. 나는 약간의 독서를했다-이것은 Windows가 금지 된 영역 (예 : "C : \ Program Files \")에 쓰려고 시도하는 (레거시) 소프트웨어를 처리하는 방법이므로 Git의 ssh는 VirtualStore 디렉토리 인 Windows에 쓰고 있다는 것을 완전히 알지 못합니다. 투명하게 처리하고 있습니다. 최소한 이러한 파일은 사용자에게 속합니다!
가장 효과적인 방법은 Pageant를 사용하는 것입니다. 세션을 시작할 때마다 한 번만 암호문을 한 번만 쓸 수 있기 때문입니다. 여기에있는 모든 답변이 너무 짧았으므로 여기에 자세한 안내서를 게시 할 것입니다.
pageant.exe
, puttygen.exe
, putty.exe
및 plink.exe
퍼티의 웹 사이트에서. 에 배치 C:\puttyTools
디렉토리.puttygen.exe
.%USERPROFILE%\_ssh
(내 컴퓨터에서이 디렉토리에 매핑 됨 C:\Users\andres\.ssh\
)입니다. 당신이 키를 부르는 것은 중요하지 않지만 데모를 위해 그것을 호출 할 것 github.ppk
입니다. 이 파일의 확장자는 .ppk 여야합니다.Public key for pasting into OpenSSH authorized_keys file
GitHub 설정에서 새 SSH 키에 붙여 넣습니다. 키가있는 시스템을 설명하는 제목을 지정하십시오 (예 : "Work laptop").pageant.exe
하면 새로운 시스템 트레이 아이콘이 나타납니다.Environ
찾을 수 WindowsMenu을 통해 Edit environment variables for your account
) GIT_SSH = "C:\puttyTools\plink.exe"
및SVN_SSH = "C:\puttyTools\PuTTY\plink.exe"
MINGW64
Git 콘솔 의 새 인스턴스를 실행 하고 명령을 작성하여 환경 변수가 있는지 확인하십시오 env | grep -i ssh
.(원본으로 결합 된이 두 안내서에서 처음 추출되었습니다 : Windows 용 Git을 설정 하고 PuTTY Plink / Pageant를 사용하도록 MinGW-W64 + MSYS를 구성 하는 방법 .)
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/*
git@{SERVER URL}
입니까?
파일의 표준 위치는입니다 %USERPROFILE%\.ssh
.
%USERPROFILE%
Unix의 $ HOME과 같습니다 (일반적으로와 같은 것으로 매핑 c:\users\youruserid
).
표준 명령 행 Unix 스타일 도구 인 Git과 함께 제공된 SSH 도구를 사용하는 경우 여기 에서 내 스크립트 와 같은 것을 사용 하여 모든 쉘에서 ssh-agent로 작업 할 수 있습니다 .
%USERPROFILE% is the equivalent of $HOME
것이 아닙니다$HOME
. Windows로 포팅 된 많은 악의적 인 Linux 응용 프로그램은 둘을 동일 하게 취급하지만 동일하게 취급 해서는 안됩니다 .
%USERPROFILE%
와 동일한 방식으로 Windows에서 사용 하는 도구는 $HOME
Windows 개발에 대한 문서화 된 모범 사례 / 권장 사항을 위반하고 있습니다 (MS에서 오래 전에 게시하고 시간이 지남에 따라 업데이트 됨). 이를 수행하는 많은 도구가 있지만이를 따르는 주장은 "수영장에있는 X 개 친구와도 마찬가지입니다."라는 주장과 매우 흡사합니다. USERPROFILE
사용자가 생성 / 저장 한 문서 를 저장하는 위치입니다 (예 : 저장 대화 상자). APPDATA
사용자 별 구성 데이터 용입니다. LOCALAPPDATA
사용자 별 캐시 및 대용량 파일 용입니다. PROGRAMDATA
컴퓨터 전체 구성 및 캐시 용입니다.
다음 답변은 Windows 서비스 계정에서 ssh를 실행할 때이 질문에도 적용됩니다. SSH를 통한 Git의 Jenkins (Windows 서비스)
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)
Windows 컴퓨터에 필요한 권한이 있고 정책에 따라 허용되는 경우 특히 Linux에 대한 사전 경험이 있다고 생각하면 Cygwin ( https://cygwin.com/ )을 설치하는 것이 좋습니다 . Cygwin을 사용하면 다른 Linux / Unix 시스템에서와 마찬가지로 ssh 키를 처리 할 수 있습니다. 또한 Linux의 거의 모든 cli 도구에 액세스 할 수 있습니다.
TortoiseGit을 사용하면 리포지토리 복제시 사용할 키를 지정할 수 있습니다. "Load Putty Key"를 확인 .ppk
하고 스크린 샷과 같이 파일을 찾으십시오 .
Settings... -> Network -> SSH client
이C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe
내 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를 사용하여 푸시를 할 수있었습니다. 공유 호스팅은 나에게 적합했습니다. 이 문제를 해결하는 데 몇 시간의 시행 착오가 필요했기 때문에 이것이 누군가에게 도움이되기를 바랍니다.
내 msysgit의 OpenSSL을 / 배쉬 망할 놈의 경험 (안 퍼티의 가용 스루풋은) 당신의에 대한 검색 순서이다 .ssh/
다음과 같이 폴더입니다.
%HOME%/.ssh/
%HOMEDRIVE%%HOMEPATH%/.ssh/
%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%/.ssh
인 C:/Users/Username/.ssh
및 로컬 키가 있습니다. 원격 홈 드라이브 확인 %HOME%
을 %USERPROFILE%
중지하도록 설정 합니다 .
필요에 따라 Windows에서 TortoiseGit과 Git Bash를 사용하고있었습니다. TortoiseGit에 모든 것을 추가했는데 정상적으로 작동했지만 키가 올바른 디렉토리에 있어도 Git Bash가 선택하지 않았습니다. Git Bash 에서이 작업을 수행해야합니다.
ssh-add C:\\Users\\<YOUR_USER>\\.ssh\\id_rsa
물론 \\
구분자 로 사용 하는 것을 기억하면서 키가있는 곳으로 경로를 변경할 수 있습니다 .
Windows 용 Git을 사용하는 경우 SSH 키가 생성되면 SSH 키를 ssh-agent에 추가해야합니다.
새 SSH 키 생성 및 ssh-agent에 추가를 참조하십시오 .
eval $(ssh-agent -s)
// Tell where the keys are located
ssh-add ~/.ssh/id_rsa