以下问题的答案让我不满意,我想进一步了解正在发生的事情。
Can anyone explain the $pty argument in ssh2_exec() function call

它会迫使客户端告诉服务器生成PTY还是PTY完全是客户端的?
据我所知,它已附加到诸如SSHd之类的进程中,该进程需要调用服务器。
另外,当设置为为true 时,它会模拟默认的shell吗?它是什么?
我知道您可以通过模仿PTY的 xterm 为例,这有什么不同吗?从我的 Angular 来看,仿真暗示它不是真正的PTY。

读起来可能有点令人困惑,但我正在尝试掌握这个概念。
谢谢。我很感激。

最佳答案

“pty”本质上是某种应用程序或守护程序之间的“管道”(例如,我从事虚拟化工作,我们使用pty为虚拟机提供虚拟终端)。 pty具有“主”侧和“从”侧。从属端是您的普通“终端”程序将使用的-xterm或ssh等。主控器可用于向终端提供数据的“事物”(如果您写入pty,例如当您在xterm中输入文字或粘贴文字时],该文字会被控制母版的进程读取-母版然后对此类数据进行应做的任何事情-例如在ssh情况下通过网络发送。

这完全与“您的目标”的发生有关。
如果您正在通过ssh运行“交互式”命令-说“ssh somemachine make menuconfig” [假设您的主目录是linux源目录-我们将忽略它可能不是这样的事实],默认值为不好意思,所以menuconfig可能会[至少正确地运行]失败,因为它是一个“交互式”文本程序,允许您按动按键等。因此,使用“ssh -t somemachine make menuconfig”将给出你的SSH太遗憾了。另外,默认情况下,“ssh somemachine”会给您一个pty,因为您应该在另一端键入内容。

pty是一个“本地”终端,但是sshd进程将向其提供另一端的数据,而本地sshd进程会将其馈入pty的“主”端。

本页描述了我想说的话
http://lugatgt.org/2009/10/28/ssh-tips-and-tricks-2/

08-05 11:09