Powershell에서 ‘ssh-agent를 찾을 수 없습니다’라고 말하는 Git 열면 다음 경고가 표시됩니다. WARNING: Could not find

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

WARNING: Could not find ssh-agent

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

무슨 일이야?



답변

자세한 설명을 원하는 분들은 이 블로그 게시물을 읽어보십시오 . 아래는 블로그 게시물의 인용문입니다. 궁극적으로 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에 있습니다.


답변

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"

답변

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

Start-SshAgent -Quiet

파일에서

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

답변

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


답변

지정된 키로 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