Не удалось выполнить SSH для моей виртуальной машины через Windows Power Shell ISE

У меня есть гостевая гостевая ОС Linux, работающая на моем хосте vmWare, с которым я хочу получить доступ с помощью Windows PowerShell ISE. Обычно я могу использовать SSH для своей виртуальной машины, но я не могу работать с Windows PowerShell ISE.

Когда я пытаюсь сделать SSH на своей виртуальной машине, SSH Operation застрял и не покажет мне дальнейшую консоль или сообщение. Я использую SSH-клиент, который поставляется с GIT, Windows 8.1 и vmWare Workstation 10.

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 

Это ограничение PowerShell ISE. Любое приложение, которое будет пытаться управлять панелью консоли, потерпит неудачу и / или застрянет.

Некоторые из этих команд уже «занесены в черный список», вы можете увидеть их в $psUnsupportedConsoleApplications .

Ошибка, которую вы видите, вероятно, не имеет отношения вообще: ssh записывает информацию в stderr, а PowerShell генерирует ошибку поверх этого сообщения.

Но это факт, что ssh требует полного контроля над консолью, в которой вы ее запускаете (например, чтобы вы могли запускать такие вещи, как vim), который «зависает» от ISE. Чтобы увидеть ту же проблему со встроенными приложениями, вы можете попробовать то же самое с netsh:

 $psUnsupportedConsoleApplications.Remove('netsh') netsh 

Это также должно блокировать ISE, по тем же причинам ssh блокирует его.

BTW: если вы хотите просто запустить несколько команд, plink.exe может быть лучшим инструментом, чем «обычный» ssh. Он отлично работает в ISE, потому что он не пытается захватить консоль.

Interesting Posts
Давайте будем гением компьютера.