Понимание аргумента PTY в ssh2_exec()

Ответ на следующее меня не удовлетворяет, я хочу узнать немного больше о том, что происходит. Может ли кто-нибудь объяснить аргумент $pty в ssh2_exec( ) вызов функции

Принуждает ли это клиента сообщать серверу о создании PTY или PTY полностью клиентский? Насколько я знаю, он подключен к такому процессу, как, например, SSHd, для которого потребуется вызов сервера. Кроме того, если установлено значение true, эмулирует ли он оболочку по умолчанию? Что это? Я знаю, что вы можете передать, например, xterm, который эмулирует PTY, есть ли отличия? Эмуляция подразумевает, что с моей точки зрения это не настоящий PTY.

Это может быть немного запутанным для чтения, но я пытаюсь понять эту концепцию. Спасибо. Я ценю это.


person user1807879    schedule 05.01.2013    source источник


Ответы (1)


«Pty» — это, по сути, «канал» между каким-то приложением или демоном (например, я работаю над виртуализацией, и мы используем pty для предоставления виртуального терминала для виртуальной машины). У pty есть «ведущая» и «ведомая» стороны. Ведомая сторона — это то, что использовала бы ваша обычная «терминальная» программа — xterm или ssh и т. д. Мастер используется любой «вещью», предоставляющей данные в терминал [и если вы записываете в pty, например, когда вы вводите или вставляете текст в 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/

person Mats Petersson    schedule 05.01.2013