Я использовал ssh2_exec какое-то время, чтобы создать панель администратора и систему развертывания для нашего рабочего места, и до сих пор это было очень успешно, когда я пытался использовать ее на другом сервере, чем на локальном сервере.
Я продолжаю получать «stdin: is not tty», и я смотрел по всему Интернету, чтобы получить это сообщение. Я понимаю, что проблема заключается в том, что ssh2_exec не является прерывным терминалом как таковым, и что-то на сервере, к которому я подключаюсь, вероятно, пытается проверить какой-то метод ввода … По крайней мере, это то, что я понимаю.
Я просмотрел google для 1h30, пытаясь найти сообщения относительно реализации ssh2 php, который отлично работает для моего использования, но так и не смог выяснить, как это исправить, хотя я думаю, что у меня может возникнуть идея.
Существует аргумент $ pty (3) для ssh2_exec (), но документы не говорят нам, что он делает. Кто-нибудь с ним знаком и знает, как использовать этот параметр, и может ли он исправить проблему, которая может возникнуть у меня?
Вы ответили на свой ответ. Установка аргумента $ pty в true
должна быть такой же, как передача опции «-t» команде ssh
: она сообщает клиенту открыть псевдотерминал (aka «pty», который исходит из «псевдо-tty»; «tty» происходит от «телетайпа») и притворяется интерактивным.