Czy można otworzyć sesję SSH w PowerShell? Obecnie używam PuTTY, ale byłoby miło, gdyby nie były wymagane.
Czy można otworzyć sesję SSH w PowerShell? Obecnie używam PuTTY, ale byłoby miło, gdyby nie były wymagane.
Odpowiedzi:
Oczywiście nie jest wbudowany, ale ponieważ Powershell może zrobić wszystko .Net może zrobić, istnieje sposób.
Płatnym rozwiązaniem byłyby / n Netcmdlety oprogramowania.
Bezpłatnym rozwiązaniem byłoby skorzystanie z sugestii tego posta na blogu.
Napisałem moduł do obsługi sesji SSH z PowerShell, oparty na bibliotece SSH.NET znalezionej w CodePlex. Ma New-SshSession do tworzenia połączeń (obsługiwanych jest wiele obiektów docelowych przy użyciu różnych poświadczeń), a następnie można użyć Invoke-SshCommand do uruchamiania poleceń na dowolnej liczbie hostów docelowych. Istnieje nawet Enter-SshSession, która ma bardzo podstawową, interaktywną powłokę.
Artykuł jest tutaj .
Joakim
Pobierz OpenSSH dla Windows i wybierz instalację tylko klienta podczas instalacji. Cały instalator zawierający serwer ma mniej niż 3 MB, a klient działa dobrze.
Nadal wysyłam odpowiedź na to pytanie, ponieważ uznałem, że zaakceptowana odpowiedź w ogóle nie odpowiada moim potrzebom (tylko płatne rozwiązanie lub inne, które nie radzi sobie dobrze z terminalem).
Oczywistym rozwiązaniem tego problemu jest zainstalowanie programu cygwin. Wykonaj minimalną instalację, jeśli chcesz tylko ssh, ale ponieważ PowerShell zapewnia podstawowy poziom kompatybilności z powłokami * nix (podstawowe polecenia wciąż tam są, „/” dla katalogów itp.), Naprawdę można używać rzeczy cygwin w Powershell.
Istnieje alternatywne (bezpłatne) rozwiązanie PowerShell SSH, wykorzystujące nowszą implementację biblioteki, patrz vBlog >> Klient SSH przy użyciu PowerShell
Jeśli maszyną docelową jest okno systemu Windows, możesz zamiast tego użyć narzędzia PowerShell Remoting .
To zdecydowanie nie to samo, co SSH. Są plusy (sprowadzanie obiektów z powrotem przez drut!) I wady (a jeśli celem jest Linux?).
http://www.powershellinside.com/powershell/ssh/ Darmowy do użytku osobistego.
Korzystam z Git http://git-scm.com/downloads
Zawiera wiele innych narzędzi, takich jak SCP i takie, które są również przydatne.
Jednym ze sposobów uzyskania bardzo dobrego natywnego klienta ssh jest zainstalowanie git z GitHub ( https://windows.github.com/ ).
Tworzy skrót do szykownego okna z wszystkimi ścieżkami ustawionymi poprawnie, aby używać git w PowerShell. To automatycznie pochodzi z plików binarnych ssh i scp na ścieżce.
Nie jestem pewien, co to jest za implementacja, ale działa jak Linux, tzn. Nie wydaje się być oparty na .Net lub używa komend PowerShell.
Odbiera klucz prywatny, który skonfigurowałem w $ home / .ssh / w formacie openssh i może ktoś może to potwierdzić. Wydaje się, że to openssh.
Aby było jeszcze lepiej, zintegrowałem go z moim zwykłym profilem PowerShell, wykonując następujące czynności w moim profilu $. Oznacza to, że nie muszę używać skrótu github.
. (Resolve-Path "$env:LOCALAPPDATA\GitHub\shell.ps1")
. (Resolve-Path "$env:LOCALAPPDATA\GitHub\PoshGit_*\profile.example.ps1")
Posh-SSH to darmowy moduł z Poswershell Magazine, który działa dla Powershell 3.0 i nowszych wersji.
Jest dostępny na stronie http://www.powershellmagazine.com/2014/07/03/posh-ssh-open-source-ssh-powershell-module/
Pełna dokumentacja znajduje się pod linkiem powyżej. W skrypcie tak naprawdę nie chcesz połączeń interaktywnych, więc są to dwa kroki. 1. utwórz sesję. 2. wysyłanie poleceń.
$ServerConnection = New-SSHSession -KeyFile $keyLocation -ComputerName $sshComp -Credential $mycreds -AcceptKey
Pierwsza utworzona sesja będzie miała indeks 0.
Invoke-SSHCommand -Index 0 -Command "some command to run over ssh"
Najlepszą praktyką jest umieszczenie tworzenia połączenia w try catch i sprawdzenie, czy sesja istnieje przed uruchomieniem polecenia. To sprawia, że interakcja z serwerami Linux z poziomu skryptu PowerShell działa dobrze.
SSH i SFTP stanowią niewątpliwie standard branżowy w zakresie bezpiecznych aplikacji do zdalnego dostępu. Na szczęście możliwe jest, że nawiązanie połączenia może być naprawdę szybkie i łatwe. Niestety prawda jest taka, że istnieje wiele możliwości marnowania czasu na rozwiązywanie problemów.
Niestety system Windows nie ma na pokładzie standardowego klienta ssh ani oprogramowania deamon.
Powoduje to zoo mniej lub bardziej dziwacznych implementacji, open source, freeware, shareware i tak dalej ... czasem coś nie działa.
W oknach jest to kwestia pieniędzy. Microsoft po prostu nie chce, aby wielu użytkowników łatwo łączyło się z 1 lizenizowanym komputerem. Chcą sprzedawać własne rozwiązania. Więc nie oferują natywnego ssl.
cygwin to najlepsze dostępne rozwiązanie.
putty / plink / winscp jako oprogramowanie klienckie. jest również w porządku dla skryptów.
istnieją diagramy ssh do integracji z systemem Windows, ale rozwiązania są mniej lub bardziej niestabilne.
najbardziej stabilnym sposobem na uruchomienie ssh deamon przy uruchamianiu windwos jest uruchomienie go w maszynie wirtualnej systemu Linux, co można zrealizować przy niewielkiej dystrybucji linuksa.