php ssh2 подключиться ко второму серверу через сервер переходов - PullRequest
0 голосов
/ 09 апреля 2019
===========              ===============            ===============
apache2 server    ====>     remote server A     =====>  remote server B
===========              ===============            ===============

Я хочу получить доступ к удаленному серверу B с сервера apache2 через удаленный сервер A, поскольку удаленный сервер B принимает подключение только от сервера A (хост перехода). Я искал в Google и на этом сайте, но все еще не повезло. Я пытаюсь с помощью скрипта ниже подключиться к серверу B с сервера apache2, но вывод результатов не отображается. Что я пропустил?

<?php

$host = "192.168.xx.xxx";
$port = 22;
$username = "serverA";
$password = "serverApass";
$connection = NULL;

$passSvr = "serverBpass";
$SvrBUser = "serverB";
$SvrBHost = "192.168.xx.xxx";

try {
    $connection = ssh2_connect($host, $port);
    if(!$connection){
        throw new \Exception("Could not connect to $host on port $port");
    }
    $auth  = ssh2_auth_password($connection, $username, $password);
    if(!$auth){
        throw new \Exception("Could not authenticate with username $username and password ");
    }
    if($connection){

    $contents = ssh2_exec($connection, "sshpass -p '{$passSvr}' ssh $SvrBUser@$SvrBHost ls -al");
    stream_set_blocking($contents, true);
   $output = ssh2_fetch_stream($contents, SSH2_STREAM_STDIO);
   echo stream_get_contents($output);

        }

} catch (Exception $e) {
    echo "Error due to :".$e->getMessage();
}
?>
...