Я пытаюсь сделать следующее.
Имейте php выполнить команды оболочки на наших удаленных серверах. Это потому, что я хотел бы иметь возможность устанавливать скрипты через bash. Таким образом php собирается выполнить сценарии bash на удаленном сервере.
Проблема заключается в невозможности подключения к удаленному серверу по какой-либо причине. Я пробовал несколько способов сделать это, и я должен делать с корнем и паролем. Позже я могу посмотреть на их шифрование или что-то в этом роде, но я не могу использовать ключ ssh, чтобы он не работал. Я новичок в php-части, поэтому мне нужна помощь в подключении к удаленным серверам.
код, который я сейчас пытаюсь сделать
$ip = '37.130.000.00';
$user = 'admin';
$pass = 'xxxxxxxxx';
$connection = ssh2_connect($ip);
ssh2_auth_password($connection,$user,$pass);
$shell = ssh2_shell($connection,"uptime");
echo $shell;
По какой-то причине этот код дает мне следующую ошибку
Неустранимая ошибка: вызов неопределенной функции ssh2_connect() в
Как я могу сделать эту работу или что еще я должен сделать, чтобы правильно подключиться к удаленным серверам, и все это должно быть очень гибким, поскольку мы говорим о 100 серверах, которые должны иметь возможность подключиться таким образом.
Спасибо за любой вклад.
Эта функция предоставляется дополнительным расширением, которое, похоже, не установлено. Если у вас есть libssh и другие зависимости в вашей системе, получите pecl-ssh, выполнив
sudo pecl install ssh2 channel://pecl.php.net/ssh2-0.11.3
а затем перезапустите php-fpm или apache, если вы используете modphp.
Edit: Кстати, этот вопрос был задан раньше, и один из самых мудрых советов, который я видел в отношении, - это переход на чистую реализацию php, без каких бы то ни было расширений: php-function-ssh2-connect-is-not -за работой