Powershell에서 'ssh-agent를 찾을 수 없습니다'라고 말하는 Git


97

git이 설치되어 있고 명령 프롬프트에서 잘 작동하지만 powershell을 열면 다음 경고가 표시됩니다.

WARNING: Could not find ssh-agent

미인 대회가 실행 중이고 개인 키로로드되었습니다. 이것은 모든 GUI 도구와 명령 프롬프트에서 작동하지만 Powershell에서는 작동하지 않습니다.

무슨 일이야?


1
%PATH%어떤 이유로 다를 수 있습니까?
Jonas Heidelberg


1
@rohancragg의 링크는 본질적으로 add : $env:path += ";" + (Get-Item "Env:ProgramFiles(x86)").Value + "\Git\bin"to the top of your PROFILE file (PS 명령 ise $PROFILE을 사용하여 편집을 위해 PROFILE을 엽니 다)
Toby

설명하지 않아서 죄송합니다-haacked는 ""ssh-agent.exe "실행 파일을 찾을 수 없습니다. 해당 파일은 C : \ Program Files (x86) \ Git \ bin에 있습니다.하지만 해당 폴더는 자동으로 나타나지 않습니다. "msysgit하여 PATH에 추가
rohancragg

나는 제안 이 답변은 다음 haacked 게시물에 조언을 해주기 바람직하다
rohancragg

답변:


137

자세한 설명을 원하는 분들은 이 블로그 게시물을 읽어보십시오 . 아래는 블로그 게시물의 인용문입니다. 궁극적으로 ssh-agent.exe경로에 있거나 다른 방법으로 해결되어야합니다.

편집 : 대부분의 사람들이 링크 된 블로그를 읽는 데 신경 쓰지 않고 원본 추출이 전체 솔루션을 인용하지 않았으므로 아래 블로그에서 인용문을 확장했습니다.

다른 모든 답변에 대한 좋아요를 기준으로 오류를 해결하는 방법에는 여러 가지가 있습니다. 작동하는 것으로 알려진 하나가 아래에 인용되어 있습니다. 다른 답변이 귀하에게 더 적합 할 수 있는지 살펴보십시오.

PowerShell 프롬프트를 다시 시작했을 때 SSH 에이전트를 시작할 수 없다는 메시지가 표시되었습니다.

"ssh-agent.exe"실행 파일을 찾을 수 없었습니다. 해당 파일은 C : \ Program Files (x86) \ Git \ bin에 있습니다. 그러나 해당 폴더는 msysgit에 의해 PATH에 자동으로 추가되지 않습니다.

이 경로를 시스템 PATH에 추가하지 않으려면 PowerShell 세션에만 적용되도록 PowerShell 프로필 스크립트를 업데이트 할 수 있습니다. 내가 변경 한 내용은 다음과 같습니다.

$ env : path + = ";" + (Get-Item "Env : ProgramFiles (x86)"). Value + "\ Git \ bin"

내 컴퓨터에서 해당 스크립트는 C : \ Users \ Haacked \ Documents \ WindowsPowerShell \ Microsoft.Powershell_profile.ps1에 있습니다.


2
이것이 정말로 답이되어야합니다!
caveman_dick

이것이 정답입니다. 허용되는 대답은 TortoiseGit 또는 TortoiseHg가 설치되어 있다고 가정합니다. 이 답변이 지적했듯이 문제를 해결하는 데 필요한 것은 Msysgit입니다.
Carl

3
이 디렉토리를 PATH에 추가하면 불편 함이 생겼습니다. 일반 이름이 Windows의 명령과 충돌하는 모든 종류의 .exe가 있습니다. 언젠가 저를 물지 않기를 바랍니다.
Salman von Abbas

4
@SalmanPK : 그것은 나를 불편하게 할뿐만 아니라 Git 관리자가 명시 적으로 권장하지 않습니다. 제 경우에는 PowerShell 명령 줄이 깨졌습니다.
skolima 2013-08-19

10
ssh-agent.exe에게는 실제로 \Git\usr\bin폴더에 있습니다.
Ben Wilde

53

ise $profile경로를 오염시키지 않고이 PoshGit 문제를 해결하기 위해 프로필 상단 (유형 )에 두 줄을 추가 할 수 있습니다 . 그런 다음 실행 . $profile하여 프로필을 다시로드하십시오.

32 비트 Git의 경우

Set-Alias ssh-agent "${env:ProgramFiles(x86)}\git\bin\ssh-agent.exe"
Set-Alias ssh-add "${env:ProgramFiles(x86)}\git\bin\ssh-add.exe"

64 비트 Git의 경우

Set-Alias ssh-agent "$env:ProgramFiles\git\usr\bin\ssh-agent.exe"
Set-Alias ssh-add "$env:ProgramFiles\git\usr\bin\ssh-add.exe"

3
. $profile프로필을 다시로드하기 위해 실행 하는 것을 잊지 마십시오
northben 2014-09-06

2
New-Alias를 사용하면. $ profile 여러 번 (기타 변경의 경우). 대신 Set-Alias를 사용하면 훨씬 더 잘 작동합니다.
Randall Borck 2014 년

1
@RandallBorck와 @northben에게 감사드립니다! 제안이 통합되었습니다.
brianary

3
64 비트 git 2.5 (어제 릴리스 됨)의 출현으로 이러한 별칭은 ${env:ProgramFiles}\git\usr\bin\64 비트 시스템 대신 가리 키도록 업데이트해야 합니다.
Chester Husk

이것은 받아 들여진 대답이어야합니다. 아무도 자신의 길을 망치고 싶지 않습니다.
jebar8 jul.

17

posh-git을 사용 중이고이 경고가 표시되면 다음 줄에 주석을 달아 ( '#'기호를 추가) 해제 할 수 있습니다.

Start-SshAgent -Quiet

파일에서

Documents\WindowsPowerShell\Modules\posh-git\profile.example.ps1

5
추가 보너스로 SSH 지원이 필요하지 않거나 필요하지 않고 ssh-agent.exe PATH 수정을 추가해도 powershell 실행이 정말 느리다면이 줄을 주석으로 처리하면 실행 속도가 빨라집니다.
MechEthan

17

나는 그것을 알아. GIT_SSH를 가리 키도록 컴퓨터에서 환경 변수 를 설정해야 합니다 plink.exe. 이것은 TortoiseHg / TortoiseGit / Git Extensions 와 함께 설치 되거나 Putty 다운로드 페이지 에서 다운로드 할 수 있지만 동일한 시스템 전체를 사용하는지 확인하십시오. 이 변수가 모든 Explorer 인스턴스 및 명령 창에 대해 설정되었는지 확인하려면 Windows 세션에서 로그 아웃하는 것이 가장 좋습니다.


45 분이 낭비 된 후 Powershell의 Git에서 Pageant를 SSH 에이전트로 사용하지 않는 문제를 해결 한 유일한 방법입니다 . GIT_SSH값 을 사용하여에 대한 사용자 환경 변수를 간단히 만들었습니다 C:\Program Files (x86)\PuTTY\plink.exe. 감사.
Phil Ricketts 2016 년

3

지정된 키로 ssh-agent를 실행하기 위해 다음 코드를 작성했습니다.

$gitexepath = cmd /c where git
$gitbindir = Join-Path $gitexepath "..\..\bin"
$sshagentpath = Join-Path $gitbindir "ssh-agent.exe"
$sshaddpath = Join-Path $gitbindir "ssh-add.exe"
$keypath = "...key path...":
$sshagentres = cmd /c $sshagentpath 
$env:SSH_AUTH_SOCK = [System.Text.RegularExpressions.Regex]::Match($sshagentres, "(?<=SSH_AUTH_SOCK=).+?(?=;)").Value
$env:SSH_AGENT_PID = [System.Text.RegularExpressions.Regex]::Match($sshagentres, "(?<=SSH_AGENT_PID=).+?(?=;)").Value
cmd /c $sshaddpath $keypath

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