Можно ли открыть сеанс SSH в PowerShell? В настоящее время я использую PuTTY, но было бы неплохо, если бы это не требовалось.
Можно ли открыть сеанс SSH в PowerShell? В настоящее время я использую PuTTY, но было бы неплохо, если бы это не требовалось.
Ответы:
Конечно, не встроенный, но поскольку Powershell может делать все, что может .Net, есть способ.
Платное решение будет NetCmdlets Software Software.
Бесплатное решение будет использовать предложения этого сообщения в блоге.
Я написал модуль для работы с 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 Remoting .
Это определенно не то же самое, что SSH. Есть плюсы (возвращение объектов по проводам!) И минусы (что, если целью является Linux?).
http://www.powershellinside.com/powershell/ssh/ Бесплатно для личного пользования.
Я использую Git http://git-scm.com/downloads
Включает множество других инструментов, таких как SCP, и таких, которые также полезны.
Один из способов получить очень хороший нативный ssh-клиент - установить git из GitHub ( https://windows.github.com/ ).
Он создает ярлык для шикарного окна со всеми путями, правильно настроенными для использования 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"
Рекомендуется помещать создание соединения в попытку try и проверять существование сеанса перед выполнением команды. Это делает взаимодействие с серверами Linux внутри скрипта powershell хорошо работающим.
SSH и SFTP, несомненно, представляют отраслевой стандарт в приложениях безопасного удаленного доступа. К счастью, установление соединения может быть очень быстрым и простым. К сожалению, правда в том, что есть много возможностей потратить время на поиск неисправностей.
К сожалению, в Windows нет стандартного ssh-клиента или программного обеспечения deamon.
Это приводит к появлению более или менее причудливых реализаций, открытого исходного кода, бесплатного программного обеспечения, условно-бесплатного программного обеспечения и т. Д., Иногда работающего иногда нет.
В окнах это деньги. Microsoft просто не хочет, чтобы многие пользователи легко подключались к 1 лицензированному компьютеру. Они хотят продавать свои собственные решения. Так что они не предлагают родной ssl.
cygwin - лучшее доступное решение.
putty / plink / winscp в качестве клиентского программного обеспечения. это также хорошо для сценариев.
Есть ssh deamons для интеграции Windows, но решения более или менее нестабильны.
самый стабильный способ запустить ssh deamon на windwos - это запустить его внутри виртуальной машины Linux, можно реализовать с помощью небольшого дистрибутива linux.