SSH通过PowerShell

是否有可能在PowerShell中打开SSH会话? 目前我使用PuTTY,但如果不需要的话,它会很好。

    当然没有build立,但由于Powershell可以做任何.net可以做的,有一种方法。

    付费解决scheme将是/ n软件的NetCmdlets。

    免费的解决scheme将使用这篇博客的build议。

    我根据CodePlex上的SSH.NET库编写了一个用于处理来自PowerShell的SSH会话的模块。 它具有New-SshSession来创build连接(支持使用不同凭据的多个目标),然后可以使用Invoke-SshCommand针对任意数量的目标主机运行命令。 甚至有一个Enter-SshSession有一个非常基本的交互式shell。

    文章在这里 。

    乔金 –

    下载OpenSSH for Windows并select在安装过程中只安装客户端。 包含服务器的整个安装程序less于3MB,客户端工作正常。

    我仍然发布了这个问题的答案,因为我发现接受的答案根本不适合我的需要(只有付费的解决scheme或其他不能很好地处理terminal的问题)。

    所以这个问题的明显的解决scheme是安装cygwin。 如果你只是希望使用ssh,那么做一个最小的安装,但是因为powershell提供了与* nix shell(基本命令仍然存在,“/”用于目录等等)的基本级别,所以真的可以在Powershell中使用cygwin的东西。

    Cygwin在这里安装

    有一个可选的(免费)PowerShell SSH解决scheme,使用更新的库实现,请参阅vBlog >> SSH客户端使用PowerShell

    如果目标机器是Windows机器,则可以使用PowerShell远程处理

    这绝对不是一样的SSH。 有好处(把对象带回来!)和缺点(如果目标是Linux?)。

    我使用Git http://git-scm.com/downloads

    包括许多其他工具,如SCP等,也是有用的。

    获得一个非常好的本地ssh客户端的一种方法是从GitHub( https://windows.github.com/ )安装git。

    它创build一个posh-git窗口的快捷方式,在powershell中正确设置所有path来使用git。 这自动带有ssh和scp二进制文件的path。

    我不确定它是什么实现,但它有一个Linux的感觉,也就是说,它不觉得它是基于.NET或使用PowerShell命令行程序。

    它正在拿起我在$ home / .ssh /中以openssh格式configuration的私钥,也许有人可以确认。 感觉就像是开着的。

    为了使它更好,我已经通过在我的$configuration文件中执行以下操作将其集成到常规PowerShellconfiguration文件中。 这意味着我不必使用github的快捷方式。

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

    Posh-SSH是Poswershell杂志的一个免费模块,适用于Powershell 3.0及更高版本。

    它可以在http://www.powershellmagazine.com/2014/07/03/posh-ssh-open-source-ssh-powershell-module/

    上面的链接提供了完整的文档。 在一个脚本中,你不需要交互连接,所以这是两个步骤。 第一次创build会话。 第二次发送命令。

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

    您创build的第一个会话将具有索引0。

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

    最好的做法是将连接创build置于try catch中,并在运行命令之前validation会话是否存在。 这使得从powershell脚本内部与Linux服务器进行交互可以很好地工作。

    SSH和SFTP无疑代表了安全远程访问应用的行业标准。 幸运的是,build立连接可能非常快捷和简单。 不幸的是,事实上有很多的可能性浪费时间进行故障排除。

    不幸的是,Windows没有标准的ssh客户端或者deamon软件。

    这导致动物园或多或less怪异的实现,开源,免费软件,共享软件等… sometinmes有时不工作。

    在窗户里,它是一个钱的东西。 微软只是不希望很多用户轻易地连接到1台电脑。 他们想卖自己的解决scheme。 所以他们不提供本地SSL。

    cygwin是最好的解决scheme。

    putty / plink / winscp作为客户端软件。 它也可以用于脚本。

    有一些Windows集成ssh deamons,但解决scheme或多或less不稳定。

    在windwos上运行ssh deamon的最稳定的方法是在Linux VM中运行它,可以用一个小的linux分布来实现。