Git w Powershell mówi 'Could not find ssh-agent'

Mam zainstalowany git i działa świetnie w wierszu polecenia, ale kiedy otwieram powershell daje mi to Ostrzeżenie:

WARNING: Could not find ssh-agent

Mam uruchomiony konkurs i załadowany moim prywatnym kluczem. Działa to we wszystkich narzędziach gui i wierszu polecenia, ale nie w Powershell.

Co się dzieje?
 97
Author: neontapir, 2011-09-19

6 answers

Dla tych, którzy szukają szczegółowego wyjaśnienia, przeczytaj ten wpis na blogu . Poniżej cytat z wpisu na blogu. Ostatecznie ssh-agent.exe musi być w ścieżce, lub rozwiązać w inny sposób.

EDIT: Wygląda na to, że większość ludzi nie przeszkadza w czytaniu połączonego bloga, a oryginalny Wyciąg nie cytuje pełnego rozwiązania, więc rozszerzyłem cytat z bloga poniżej.

Istnieje wiele sposobów rozwiązania błędu, w oparciu o upodobania do wszystkich innych odpowiedzi. Jeden znany do pracy jest cytowany poniżej. Skanuj chociaż inne odpowiedzi mogą być bardziej odpowiednie dla Ciebie.

Kiedy ponownie uruchomiłem monit PowerShell, powiedział mi, że nie może uruchomić agenta SSH.

Okazuje się, że nie był w stanie znaleźć "ssh-agenta.exe " wykonywalny. Ten plik znajduje się w C:\Program Files (x86)\Git \ bin. ale ten folder nie jest automatycznie dodawany do ścieżki przez msysgit.

Jeśli nie chcesz dodawać tej ścieżki do ścieżki systemowej, możesz zaktualizować swoją Skrypt profilu PowerShell, więc dotyczy tylko sesji PowerShell. Oto moja zmiana.

$env: path+="; "+ (Get-Item " Env: ProgramFiles (x86)").Wartość + "\git \ bin "

Na mojej maszynie ten skrypt jest na: C:\Users\Haacked\Documents\WindowsPowerShell\Microsoft.Powershell_profile.ps1

 138
Author: Taras Alenin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55

Możesz dodać dwie linie na górze profilu (wpisz ise $profile), aby rozwiązać ten szykowny problem bez zanieczyszczania ścieżki. Następnie uruchom . $profile, aby przeładować swój profil.

Dla 32-bitowego 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"

Dla 64-bitowego 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"
 53
Author: brianary,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-25 14:35:12

Jeśli używasz posh-git i otrzymujesz to Ostrzeżenie, możesz je wyłączyć, komentując (dodając znak " # " do) następującą linię

Start-SshAgent -Quiet

W pliku

Documents\WindowsPowerShell\Modules\posh-git\profile.example.ps1
 17
Author: Ahmed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-31 09:41:47

Rozgryzłem to. Musisz ustawić zmienną środowiskową GIT_SSH na swoim komputerze, aby wskazywała na plink.exe. Może to być ten zainstalowany z TortoiseHg / TortoiseGit /Git Extensions lub możesz go pobrać ze strony Putty Download Page , ale upewnij się, że używasz tego samego systemu. Najlepiej wylogować się z sesji systemu Windows, aby upewnić się, że zmienna zostanie ustawiona dla wszystkich wystąpień Eksploratora i okien poleceń.

 17
Author: Khalid Abuhakmeh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-19 13:25:37

Aby uruchomić SSH-agenta z podanym kluczem napisałem ten kod:

$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
 3
Author: Stanislav Berkov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-18 13:23:14
 2
Author: TrueWill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:34