在远程 SSH 服务器上执行的 Windows 应用程序的输出如何到达本地 SSH 客户端
How an output of Windows application executed on remote SSH server gets to a local SSH client
我正在使用 PuTTY 连接到 Windows 7 上的 SSH 服务器 运行。
当我在 PuTTY 终端中发出 powershell
是否意味着 powershell
命令 window 在远程机器上打开?
如果是,远程 运行 powershell
window 的输出如何路由到 PuTTY 客户端?
抱歉,如果这是一个蹩脚的问题,但对我来说不是很明显。
在远程计算机上执行 PowerShell 时,没有 window 在服务器上打开。
powershell.exe
是控制台应用程序。控制台应用程序具有标准 IO(输入和输出)。如果您 运行 在本地 Windows 控制台应用程序,Windows GUI 会创建一个控制台 window 并将应用程序 IO 绑定到 window。如果您通过 SSH 服务器 运行 控制台应用程序,SSH 服务器会将应用程序 IO 绑定到 SSH shell 会话。因此,PowerShell 打印的任何内容都会被路由到 SSH shell 会话输出,最终呈现在您的本地 SSH 客户端 window (PuTTY)。
换句话说,本地 PowerShell window 由 Windows GUI(执行 PowerShell 的系统)呈现,而不是由 PowerShell 进程本身呈现(与 windows GUI 应用程序)。另一个系统,比如SSH服务器,可以选择完全不同的"rendering"IO,比如路由IO到SSHshell会话
这与在 *nix 服务器上使用 ls
命令的过程相同。 ls
也是一个控制台应用程序。 (Afaik,所有 *nix 应用程序实际上都是控制台应用程序,在 Windows 上不是这样。)
我正在使用 PuTTY 连接到 Windows 7 上的 SSH 服务器 运行。
当我在 PuTTY 终端中发出 powershell
是否意味着 powershell
命令 window 在远程机器上打开?
如果是,远程 运行 powershell
window 的输出如何路由到 PuTTY 客户端?
抱歉,如果这是一个蹩脚的问题,但对我来说不是很明显。
在远程计算机上执行 PowerShell 时,没有 window 在服务器上打开。
powershell.exe
是控制台应用程序。控制台应用程序具有标准 IO(输入和输出)。如果您 运行 在本地 Windows 控制台应用程序,Windows GUI 会创建一个控制台 window 并将应用程序 IO 绑定到 window。如果您通过 SSH 服务器 运行 控制台应用程序,SSH 服务器会将应用程序 IO 绑定到 SSH shell 会话。因此,PowerShell 打印的任何内容都会被路由到 SSH shell 会话输出,最终呈现在您的本地 SSH 客户端 window (PuTTY)。
换句话说,本地 PowerShell window 由 Windows GUI(执行 PowerShell 的系统)呈现,而不是由 PowerShell 进程本身呈现(与 windows GUI 应用程序)。另一个系统,比如SSH服务器,可以选择完全不同的"rendering"IO,比如路由IO到SSHshell会话
这与在 *nix 服务器上使用 ls
命令的过程相同。 ls
也是一个控制台应用程序。 (Afaik,所有 *nix 应用程序实际上都是控制台应用程序,在 Windows 上不是这样。)