Я хочу подключиться к удаленному серверу для выполнения commmand.
Здесь мой php:
<?php
$dir='ChemAliveMolOpt/TEST';
$remote_file = $dir.'/inputfile';
$command="/home/bomble/ChemAliveMolOpt/ChemAliveExec/ChemAliveMolOpt ".$remote_file;
$connection = ssh2_connect('[email protected]', 21);
ssh2_exec($connection, $command);
?>
Здесь мои ошибки:
PHP Предупреждение: ssh2_connect(): php_network_getaddresses: getaddrinfo не удалось: имя или служба не известны в коде оболочки php в строке 1 PHP Предупреждение: ssh2_connect(): невозможно подключиться к [email protected] на порту 21 в коде оболочки php в строке 1 Предупреждение PHP: ssh2_connect(): Не удается подключиться к [email protected] в коде оболочки php в строке 1
Если я подключаюсь к разъему, используя ssh [email protected], он правильно подключается.
Какие-нибудь советы?
Вы получаете ошибку, потому что пытаетесь подключиться к имени узла, которое невозможно устранить. Это потому, что "[email protected]" не является допустимым именем хоста. Очевидно, что эта строка не может быть разрешена для ip-адреса.
В документации достаточно ясно, как использовать команду ssh2_connect()
: http://php.net/manual/en/function.ssh2-connect.php
В нем четко указано, что первым аргументом функции должно быть имя хоста, а не что-то, содержащее имя хоста помимо других вещей.
BTW: также номер порта, который вы указываете (порт 21), является неожиданным. Вы действительно уверены, что на этом порту слушаете ssh-сервер? Хотя технически это возможно, было бы очень неожиданно...