我的 vmWare 主机中运行着一个 Linux VM 客户机,我想使用 Windows PowerShell ISE 来访问它。我通常可以通过 SSH 连接到我的 VM,但无法使用 Windows PowerShell ISE。
当我尝试通过 SSH 连接到我的虚拟机时,SSH 操作卡住了,不会显示任何其他控制台或消息。我使用的是 GIT、Windows 8.1 和 vmWare Workstation 10 附带的 SSH 客户端。
PS C:\> ssh [email protected]
ssh : Warning: Permanently added '192.168.255.142' (RSA) to the list of known hosts.
At line:1 char:1
+ ssh [email protected]
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (Warning: Perman...of known hosts.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
答案1
这是 PowerShell ISE 的限制。任何尝试控制控制台窗格的应用程序都将失败和/或卡住。
其中一些命令已被列入“黑名单”,您可以在中看到它们$psUnsupportedConsoleApplications
。
您看到的错误可能根本不相关:ssh 将信息写入 stderr,并且 PowerShell 在此消息之上生成错误。
但事实上,ssh 需要完全控制您正在运行的控制台(例如,使您能够运行 vim 之类的程序),这会“冻结”ISE。要查看内置应用程序的相同问题,您可以尝试使用 netsh 执行相同操作:
$psUnsupportedConsoleApplications.Remove('netsh')
netsh
这也应该锁定 ISE,原因与 ssh 锁定它相同。
顺便说一句:如果你只想运行几个命令,链接器可以成为比“普通” ssh 更好的工具。它在 ISE 中运行良好,因为它不会尝试接管控制台。