Назад | Перейти на главную страницу

SSH через PowerShell

Можно ли открыть сеанс 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.

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

Существует альтернативное (бесплатное) решение 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.