В настоящее время я пытаюсь выяснить, как подключиться к другому серверу через SSH, используя функции оболочки PHP. У меня есть сайт, где я должен передать данные из PHP в пользовательскую программу командной строки, а затем вернуть результат. На старом сервере, который я использовал, это было возможно с помощью функции exec ():
$cmd = '/path/to/custom/program "arg1", "arg2", "arg3"';
exec($cms, $output);
$ output, конечно, будет содержать данные, которые вернула моя программа.
Сейчас я нахожусь в положении, когда хост не позволяет мне запускать мою пользовательскую программу. Однако функции оболочки PHP все еще доступны. Хост предложил мне установить PHP на SSH на другом сервере, запустить команды, которые мне нужны, и затем вернуть результат. Это кажется невероятно отсталым, но что я знаю?
Мой конкретный вопрос относится к тому, как мне поступить при передаче информации для входа в команду exec (). Например, когда я подключаюсь к любому SSH-серверу вручную, я добавляю:
ssh myserver.com -l myusername
И тогда я вижу:
myusername@myserver.com's password:
Если бы я передал "ssh myserver.com -l myusername" в качестве команды exec (), как бы я тогда дал ему пароль? После этого, как я узнаю, что я должным образом аутентифицирован и подключен, чтобы я мог запустить команду для моей программы?
О, а также, у меня нет доступа к функциям ssh2 в PHP, и я не смог бы установить это расширение.