Jak utrzymać sesję logowania ssh-agent za pomocą nowego OpenSSH i PowerShell w Windows 10

18

Na moim komputerze Ubuntu po prostu używam pęku kluczy, aby utrzymać jednego agenta ssh, który pozostaje zalogowany.

Chciałbym coś podobnego do tego w systemie Windows teraz, gdy natywnie włączono OpenSSH. Korzystałem z Git Bash ze znanym if [ -z "$SSH_AUTH_SOCK" ] ; then ...skryptem, ale spowodowało to otwarcie wielu agentów ssh, wiedziałem, że odradzano (częściowo z powodu tego postu na blogu: http://rabexc.org/posts/pitfalls-of-ssh -agents ) - co sprawiło, że dostałem Keychain dla Ubuntu. Innym powodem, dla którego już go nie używam, jest przejście do PowerShell jako mojej głównej powłoki.

Ale nie jestem pewien, jak osiągnąć to samo w systemie Windows, szczególnie za pomocą PowerShell i Win32-OpenSSH .

Dzięki!

Southclaws
źródło

Odpowiedzi:

14

Musisz skonfigurować usługę Agenta uwierzytelniania OpenSSH, aby automatycznie się uruchamiała (lub możesz uruchomić ją ręcznie za każdym razem, gdy otwierasz PowerShell po raz pierwszy: Start-Service ssh-agent).

Następnie musisz ssh-add C:\path\to\your\ssh\key\id_rsatylko raz. Następnie za każdym razem, gdy ssh-agent jest uruchamiany, klucz będzie dostępny. Możesz to sprawdzić za pomocą ssh-add -l.

EDYCJA: Aby agent SSH automatycznie uruchamiał się w systemie Windows, możesz uruchomić polecenie Set-Service ssh-agent -StartupType Automaticsuper-user programu PowerShell.

Davi Koscianski Vidal
źródło
Czy możesz dodać szczegółowe informacje na temat automatycznego uruchamiania ssh-agent?
Mark Woon,
@ MarkWoon Właśnie edytowałem swoją odpowiedź.
Davi Koscianski Vidal
2
Wydaje się, że to nie działa - Set-Service nie ma widocznego efektu, a ręczna Start-Service, podczas gdy coś uruchamia, jest również nieskuteczna - każde kolejne polecenie ssh-add nie powiedzie się z powodu „nieudanej komunikacji z agentem” .. .
Chris Dodd
1
* W menu startowym wyszukaj „Usługi” * Kliknij dwukrotnie „Agent uwierzytelniania OpenSSH” * Ustaw typ uruchamiania na „Automatycznie” * Kliknij „Start” * Kliknij OK i wyjdź * * Teraz przejdź do PowerShell i dodaj swój klucz za pomocą „ssh -add "* Następnie agent zapamięta twój klucz, gdy go potrzebujesz :)
Esben Andersen
1

Nie pełna odpowiedź, ale wciąż rozwiązanie problemu, który mnie tu sprowadził. (Widzę tu również komentarz innej osoby, który wydaje się być tym samym problemem).

Jeśli masz Git dla Windows lub MinGW lub cokolwiek innego, co może dodać narzędzia GNU do ścieżki Windows, może to zakłócać pliki binarne OpenSSH dla Windows. Dla mnie musiałem usunąć ProgramFiles / Git / bin z mojej zmiennej środowiskowej PATH, a następnie ponownie uruchomić PowerShell, aby to zadziałało. Wcześniej dostawałem komunikat „nieudana komunikacja z agentem”

Kevin Rak
źródło