Вопрос: SSH через PowerShell


Можно ли открыть сеанс SSH в PowerShell? В настоящее время я использую PuTTY, но было бы неплохо, если бы этого не требовалось.


52
2018-02-18 17:27


Источник


Я знаю, что это не поддерживается естественным образом, но я бы тоже хотел увидеть решение. - egorgry
что случилось с просто вызовом putty.exe (или plink.exe) из командной строки? - Javier
Хавьер: Начнем с того, что plink будет только SSH-клиент и полностью лишен возможностей эмуляции терминала. - grawity
+1, я бы хотел увидеть решение самостоятельно. И по большей части я ненавижу замазку. (Пользователь SecureCRT) - Urda
Microsoft объявляет о будущей поддержке SSH: blogs.msdn.com/b/powershell/archive/2015/06/03/... - nw.


Ответы:


Конечно, не встроено, но поскольку Powershell может делать что угодно. Net может сделать, есть способ.

Платное решение было бы / n NetCmdlets программного обеспечения.

Бесплатное решение будет использовать предложения это сообщение в блоге.


19
2018-02-18 17:39





Я написал модуль для работы с сессиями SSH из PowerShell, основанный на библиотеке SSH.NET, найденной в CodePlex. У него есть New-SshSession для создания соединений (поддерживается несколько целей с использованием разных учетных данных), а затем вы можете использовать Invoke-SshCommand для запуска команд против любого количества целевых хостов. Есть даже Enter-SshSession, у которого есть очень простая интерактивная оболочка.

Статья Вот,

Йоаким


9
2018-04-27 09:01





Скачать OpenSSH для Windows и выберите установку только клиента во время установки. Весь инсталлятор, использующий сервер, меньше 3 МБ, и клиент работает отлично.


6
2017-09-05 13:28



В этом проекте много предупреждений об установщике, толкающем переменную System PATH на Windows 7 и 8 - будьте осторожны! - Patrick M


Я все еще оставляю ответ на этот вопрос, потому что я нашел принятый ответ, который не соответствует моим потребностям (только платное решение или другое, которое плохо обрабатывает терминал).

Поэтому очевидным решением этой проблемы является установка cygwin. Сделайте минимальную установку, если вы просто хотите ssh, но так как powershell обеспечивает базовый уровень совместимости с * nix shells (основные команды все еще существуют, «/» для каталогов и т. Д.), Действительно возможно использовать материал cygwin внутри Powershell.

Cygwin установить здесь


2
2017-10-13 20:49



Cygwin? Блек! Может также запустить VM ... - Urda
Как так ? ssh - это скомпилированный из Windows исполняемый файл. Если вы не будете взаимодействовать с материалами unix-y, не удивительно, что вам нужно установить некоторые библиотеки для этого. - raph.amiard
См. Ответ от Ameer Deen, я думаю, что это лучшее решение здесь и отлично работает. - Hosh Sadiq
@HoshSadiq Из описания OpenSSH для Windows: «Установщик для минимальной установки среды Cygwin, подходящей для запуска сервера OpenSSH на платформе Windows». - Douglas Ludlow


Существует альтернативное (бесплатное) решение SSH PowerShell, использующее новую реализацию библиотеки, см. vBlog >> Клиент SSH с помощью PowerShell


2
2018-03-06 11:01



мертвая ссылка. Не могли бы вы это исправить? - Bastien Vandamme


Если целевой компьютер является окном Windows, вы можете использовать Удаленное управление PowerShell, вместо этого.

Это определенно не то же самое, что SSH. Есть плюсы (приносят объекты обратно по проводам!) И минусы (что, если цель - Linux?).


1
2018-02-20 19:55





http://www.powershellinside.com/powershell/ssh/ Бесплатно для личного использования.


1
2018-02-14 06:01





Я использую Git http://git-scm.com/downloads 

Включает множество других инструментов, таких как SCP, и такие, которые тоже полезны.


1
2018-05-08 19:29





Один из способов получить очень хороший собственный ssh-клиент - установить git из GitHub (https://windows.github.com/).

Он создает ярлык для окна posh-git со всеми путями, установленными правильно для использования git в powershell. Это автоматически поставляется с двоичными файлами ssh и scp в пути.

Я не уверен, что это такое, но у него действительно есть Linux, например, он чувствует себя не так, как есть .Net основан или использует командлеты powershell.

Он собирает закрытый ключ, который я настроил в формате $ home / .ssh / in openssh, и, возможно, кто-то может подтвердить. Похоже, что это openssh.

Чтобы сделать его еще лучше, я включил его в свой обычный профиль powershell, выполнив следующее в моем профиле $. Это означает, что мне не нужно использовать ярлык github.

. (Resolve-Path "$env:LOCALAPPDATA\GitHub\shell.ps1") . (Resolve-Path "$env:LOCALAPPDATA\GitHub\PoshGit_*\profile.example.ps1")


1
2017-08-06 07:03





Posh-SSH - бесплатный модуль из журнала Poswershell, который работает для Powershell 3.0 и выше.

Он доступен по адресу: http://www.powershellmagazine.com/2014/07/03/posh-ssh-open-source-ssh-powershell-module/

Полная документация предоставляется по указанной выше ссылке. В сценарии вы действительно не хотите интерактивных подключений, так что это два шага. 1-й создать сеанс. 2 команды отправки.

$ServerConnection = New-SSHSession -KeyFile $keyLocation -ComputerName $sshComp -Credential $mycreds -AcceptKey

Первый созданный вами сеанс будет иметь индекс 0.

Invoke-SSHCommand -Index 0 -Command "some command to run over ssh"

Лучше всего поставить создание соединения в try catch и проверить сеанс перед запуском команды. Это позволяет работать с серверами Linux из сценария powershell.


1
2017-10-08 17:25





SSH и SFTP, несомненно, представляют собой промышленный стандарт в защищенном приложении удаленного доступа. Вполне возможно, что создание соединения может быть очень быстрым и легким. К сожалению, правда в том, что есть много возможностей тратить время на устранение неполадок.

К сожалению, Windows не имеет стандартного программного обеспечения ssh или deamon на борту.

Это приводит к созданию зоопарка более или менее причудливых реализаций, с открытым исходным кодом, бесплатной, условно-бесплатной и т. Д. ... sometinmes иногда работают.

Внутри окон это деньги. Microsoft просто не хочет, чтобы многие пользователи подключались к 1 lizenz компьютеру легко. Они хотят продать свои собственные решения. Так они не предлагают родной ssl.

cygwin - лучшее доступное решение.

putty / plink / winscp в качестве клиентского программного обеспечения. его также хорошо для сценариев.

есть ssh deamons для интеграции Windows, но решения более или менее нестабильны.

самый стабильный способ заставить ssh deamon на работе Windwos запускать его внутри виртуальной машины Linux, может быть реализован с небольшим распределением Linux.


-2
2017-11-12 13:58



Это на самом деле ответ вопрос ОП. Можете ли вы изменить свой вопрос, чтобы указать, почему cygwin является решением вопроса, заданного OP? - Twisty Impersonator
OP не запрашивает альтернативы, кроме решений, связанных с PowerShell. - cychoi