“pty”本质上是某种应用程序或守护进程之间的“管道”(例如,我从事虚拟化工作,我们使用 pty 为虚拟机提供虚拟终端)。pty 有“主人”和“奴隶”的一面。从端是您的正常“终端”程序将使用的 - xterm 或 ssh 等。主端由任何“事物”提供数据到终端 [如果您写入 pty,例如当您键入或粘贴时text into an xterm] 它被控制主机的进程读取 - 然后主机对这些数据执行它应该做的任何事情 - 例如在 ssh 情况下通过网络发送它。
这完全与“你的结局”发生的事情有关。如果您正在通过 ssh 运行“交互式”命令 - 说“ssh somemachine make menuconfig”[假设您的主目录是 linux 源目录 - 我们将忽略它可能不是的事实],默认为不做一个pty,所以menuconfig可能会失败[至少不能正确运行],因为它是一个“交互式”文本程序,允许你按键移动等等。所以使用“ssh -t somemachine make menuconfig”会给你的 ssh 一个 pty。或者,“ssh somemachine”默认会给你一个 pty,因为你需要在另一端输入东西。
pty 是一个“本地”终端,但 sshd 进程将从另一端向它提供数据,而您的本地 sshd 进程将其馈送到 pty 的“主”端。
这个页面描述了我想说的
http://lugatgt.org/2009/10/28/ssh-tips-and-tricks-2/