English | 简体中文 | 繁體中文
查询

ssh2_shell()函数—用法及示例

「 在SSH连接上打开一个shell会话 」


函数名称:ssh2_shell() 

适用版本:PHP 5 >= 5.2.0, PHP 7, PECL ssh2 >= 0.10 

函数说明:ssh2_shell()函数用于在SSH连接上打开一个shell会话。

用法: resource ssh2_shell ( resource $session [, string $term_type = "vanilla" [, array $env [, int $width = 80 [, int $height = 25 [, int $width_height_type = SSH2_TERM_UNIT_CHARS ]]]]] )

参数说明:

  • $session:SSH会话的资源句柄,通过ssh2_connect()函数获取。
  • $term_type:可选参数,指定shell会话的终端类型,默认为"vanilla"。
  • $env:可选参数,指定shell会话的环境变量。以关联数组的形式传递,键为环境变量名,值为环境变量的值。
  • $width:可选参数,指定shell会话的宽度,默认为80个字符。
  • $height:可选参数,指定shell会话的高度,默认为25个字符。
  • $width_height_type:可选参数,指定宽度和高度的单位类型,默认为SSH2_TERM_UNIT_CHARS,表示字符单位。

返回值:成功时返回一个资源句柄,用于与shell会话进行交互。失败时返回false。

示例:

<?php
$connection = ssh2_connect('example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$shell = ssh2_shell($connection, 'vanilla', null, 80, 25, SSH2_TERM_UNIT_CHARS);
if ($shell === false) {
    die('Failed to open shell');
}

// 执行命令并获取输出
fwrite($shell, 'ls -l' . PHP_EOL);
sleep(1);
$output = '';
while ($line = fgets($shell)) {
    $output .= $line;
}

echo $output;

fclose($shell);
?>

以上示例用于建立与远程服务器的SSH连接,并在该连接上打开一个shell会话。然后,通过fwrite()函数向shell会话发送命令,并使用fgets()函数逐行读取命令执行的输出。最后,关闭shell会话。请注意,示例中的用户名、密码和远程主机地址需要根据实际情况进行替换。

补充纠错
上一个函数: ssh2_tunnel()函数
热门PHP函数
分享链接