Можно ли открыть сеанс SSH в PowerShell? В настоящее время я использую PuTTY, но было бы неплохо, если бы это не требовалось.
Не встроен, конечно, но поскольку Powershell может делать все, что может .Net, способ есть.
Платное решение будет / n NetCmdlets программного обеспечения.
Бесплатное решение будет использовать предложения это сообщение в блоге.
Я написал модуль для работы с сеансами SSH из PowerShell, основанный на библиотеке SSH.NET, найденной на CodePlex. Он имеет New-SshSession для создания подключений (поддерживается несколько целей, использующих разные учетные данные), а затем вы можете использовать Invoke-SshCommand для запуска команд для любого количества целевых хостов. Есть даже Enter-SshSession с очень простой интерактивной оболочкой.
Статья Вот.
Иоаким
Скачать OpenSSH для Windows и выберите установку только клиента во время установки. Весь установщик, включая сервер, занимает менее 3 МБ, и клиент работает нормально.
Я все еще отправляю ответ на этот вопрос, потому что я обнаружил, что принятый ответ совсем не соответствует моим потребностям (только платное решение или другое, которое плохо справляется с терминалом).
Итак, очевидным решением этой проблемы является установка cygwin. Выполните минимальную установку, если вам просто нужен ssh, но поскольку powershell обеспечивает базовый уровень совместимости с оболочками * nix (основные команды все еще присутствуют, «/» для каталогов и т. Д.), Действительно возможно использовать материал cygwin внутри Powershell.
Существует альтернативное (бесплатное) решение PowerShell SSH, использующее новую реализацию библиотеки, см. vBlog >> Клиент SSH с использованием PowerShell
Если целевая машина - это компьютер с Windows, вы можете использовать Удаленное взаимодействие PowerShellвместо этого.
Это определенно не то же самое, что SSH. Есть плюсы (возвращение объектов по сети!) И минусы (что, если целью является Linux?).
http://www.powershellinside.com/powershell/ssh/ Бесплатно для личного пользования.
Я использую Git http://git-scm.com/downloads
Включает в себя множество других инструментов, таких как SCP, и других полезных.
Один из способов получить очень хороший собственный клиент ssh - установить git с GitHub (https://windows.github.com/).
Он создает ярлык для окна posh-git со всеми правильными путями для использования git в powershell. Это автоматически идет с двоичными файлами ssh и scp в пути.
Я не уверен, что это за реализация, но в ней есть ощущение Linux, то есть не похоже, что она основана на .Net или использует командлеты PowerShell.
Он собирает закрытый ключ, который я настроил в $ home / .ssh / в формате openssh, и, возможно, кто-то сможет подтвердить. Такое ощущение, что это openssh.
Чтобы сделать его еще лучше, я интегрировал его в свой обычный профиль PowerShell, выполнив следующие действия в моем профиле $. Это означает, что мне не нужно использовать ярлык github.
. (Resolve-Path "$env:LOCALAPPDATA\GitHub\shell.ps1")
. (Resolve-Path "$env:LOCALAPPDATA\GitHub\PoshGit_*\profile.example.ps1")
Posh-SSH - это бесплатный модуль от Poswershell Magazine, который работает для 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"
Лучше всего поместить создание соединения в перехватчик попытки и проверить существование сеанса перед запуском команды. Это позволяет взаимодействовать с серверами Linux изнутри сценария PowerShell.
SSH и SFTP, несомненно, представляют собой отраслевой стандарт приложений безопасного удаленного доступа. К счастью, соединение может быть очень быстрым и легким. К сожалению, правда в том, что есть много возможностей потратить время на устранение неполадок.
К сожалению, в Windows нет стандартного клиента ssh или программного обеспечения deamon.
Это приводит к зоопарку более или менее причудливых реализаций с открытым исходным кодом, бесплатного программного обеспечения, условно-бесплатного программного обеспечения и т. Д. ... иногда не работают.
В окнах дело в деньгах. Microsoft просто не хочет, чтобы многие пользователи легко подключались к одному лицензированному компьютеру. Они хотят продавать свои собственные решения. Поэтому они не предлагают собственный ssl.
cygwin - лучшее доступное решение.
putty / plink / winscp в качестве клиентского программного обеспечения. это также нормально для сценариев.
есть демоны ssh для интеграции с Windows, но решения более или менее нестабильны.
Самый стабильный способ запустить ssh deamon на windwos - запустить его внутри виртуальной машины Linux, это можно реализовать с помощью небольшого дистрибутива Linux.