是否可以在PowerShell中打开SSH会话?目前,我使用PuTTY,但是如果不需要的话,会很好。
是否可以在PowerShell中打开SSH会话?目前,我使用PuTTY,但是如果不需要的话,会很好。
Answers:
下载适用于Windows的OpenSSH,并选择在安装过程中仅安装客户端。整个安装程序(包括服务器)少于3MB,客户端工作正常。
我仍在发布此问题的答案,因为我发现接受的答案根本不适合我的需求(仅付费解决方案或不能很好地处理终端的解决方案)。
因此,解决此问题的明显方法是安装cygwin。如果只想使用ssh,请进行最小化安装,但是由于powershell提供了与* nix shell的基本兼容性(基本命令仍然存在,目录中有“ /”等),因此在Powershell中使用cygwin的东西确实是可能的。
如果目标计算机是Windows机器,则可以使用PowerShell Remoting。
绝对不同于SSH。有优点(通过导线带回对象!)和缺点(如果目标是Linux会怎样?)。
我使用Git http://git-scm.com/downloads
包括许多其他工具,例如SCP,也非常有用。
获得一个很好的本地ssh客户端的一种方法是从GitHub(https://windows.github.com/)安装git 。
它会创建一个posh-git窗口的快捷方式,并正确设置所有路径以在powershell中使用git。路径中会自动附带ssh和scp二进制文件。
我不确定它是什么实现,但是它确实具有Linux的感觉,即它不感觉它是基于.Net或使用Powershell Commandlet的。
它正在获取我在$ home / .ssh /中以openssh格式配置的私钥,也许有人可以确认。感觉像是openssh。
为了使它更好,我通过在$ profile中执行以下操作将其集成到我的常规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创建会话。第二次发送命令。
$ServerConnection = New-SSHSession -KeyFile $keyLocation -ComputerName $sshComp -Credential $mycreds -AcceptKey
您创建的第一个会话的索引为0。
Invoke-SSHCommand -Index 0 -Command "some command to run over ssh"
最佳实践是在执行命令之前将连接创建置于try catch中并验证会话是否存在。这使得从Powershell脚本内部与Linux服务器进行交互可以很好地进行。
SSH和SFTP无疑是安全远程访问应用程序中的行业标准。幸运的是,建立连接的过程可能非常快捷简便。不幸的是,事实是有很多可能会浪费时间进行故障排除。
不幸的是,Windows上没有标准的ssh客户端或守护程序软件。
这导致了一个或多或少怪异的实现,开放源代码,免费软件,共享软件等的动物园……有些有时无法正常工作。
在Windows中,这是一件赚钱的事情。Microsoft只是不想让许多用户轻松连接到一台许可的计算机。他们想出售自己的解决方案。因此,他们不提供本地ssl。
cygwin是最好的解决方案。
putty / plink / winscp作为客户端软件。脚本编写也可以。
有用于Windows集成的ssh守护进程,但是解决方案或多或少是不稳定的。
在windwos上运行ssh守护进程最稳定的方法是在Linux VM内运行它,这可以通过一个小型的Linux发行版来实现。