函数名称: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会话。请注意,示例中的用户名、密码和远程主机地址需要根据实际情况进行替换。