hly*_*y19 5 c ssh terminal sshfs
我正在阅读 sshfs 的源代码。我发现当尝试向 ssh 提供密码时,它会将密码写入 /dev/ptmx。
write(sshfs.ptyfd, sshfs.password, strlen(sshfs.password));
Run Code Online (Sandbox Code Playgroud)
我知道它是伪终端的主端,但我不太明白写入它的含义。我尝试向 /dev/ptmx 回显某些内容,但什么也没发生。也许我还没有完全理解pts和ptmx的机制。
ptmx 的想法是,您的应用程序创建一个虚拟控制台,用于与其他应用程序或操作系统进行通信。
通过打开 ptmx,应用程序会获取一个归档描述符(基本上是一个数字),这使您的应用程序可以通过虚拟终端与其他应用程序进行通信。
例如,这些其他应用程序可以通过打开 /dev/pts/12345 来打开您的终端。
回显到 /dev/ptmx 没有任何意义,因为 /dev/ptmx 的唯一功能是为应用程序提供新创建的 /dev/pts/ 设备的文件描述符,该文件描述符可供回显使用。