问一下,安装php扩展,php-shell的具体是怎么实现php连接远程主机并操作了?谢谢

第1个回答  2011-09-25
一楼真是天真,直接复制粘贴我的原提问答案,都说了,那不是我使用的方法。
我亲自来回答你吧~
过程略有些繁琐,涉及安装到许多东西。但装好了可以自由使用远程连接。
安装部分:
检查:
1 vi /etc/ssh/sshd_config
PasswordAuthentication yes //保证这行内容是yes
2 关闭selinux

安装
1 yum -y install php-devel
2编译安装libssh2-1.2.8.tar.gz.gz ,教程网上找,直接解压编译即可
3yum -y install php-pear
4 pecl install -f ssh2
5 vi /etc/php.ini
添加一行:extension=ssh2.so
6重启apache
安装的详细部分,可以网上度娘或谷姐

实现部分,其实是,安装了这个扩展就可以使用Php远程连接的自有函数了,举个例子你就明白
logtest.php:
<?php
$connection = ssh2_connect("192.168.1.77",22);
if (ssh2_auth_password($connection,"root","000000")) {
echo "Authentication Successful!\n";
} else {
die('Authentication Failed...');
}
?>
ssh2_connect函数写入目的主机的ip和端口,ssh2_auth_password输入主机用户名和密码

下面是使用举例:
<?php
if($ssh = ssh2_connect('192.168.1.77', 22)) {
if(ssh2_auth_password($ssh, 'root', '000000')) {
$stream = ssh2_exec($ssh, 'df -h | cut -c 40-42');
stream_set_blocking($stream, true);
$data = '';
while($buffer = fread($stream, 4096)) {
$data .= $buffer;
}
fclose($stream);
echo $data; // 返回的信息
}
}
?>
以上函数,向目的主机发送shell命令:df -h | cut -c 40-42
返回了需要的信息。

希望能帮到你来自:求助得到的回答本回答被提问者采纳
第1个回答  2011-09-25

一、最佳方案是在77机器上安装apache和php

二、可以通过管道控制使用telnet登录77号机执行命令并获取结果,ssh连接本人没有做过,telnet方法如下:

$f=fopen("telnet://192.168.0.77","rw");

$s=fgets($fp);
fputs($fp,"root");

$s=fgets($fp);
fputs($fp,"pass");

$s=fgets($fp);
fputs($fp,"df -h");

while(!feof($fp)){
$fp=fgets($fp);
echo $s;
}

fclose($fp);

手机输入真累~~~

Warning: Invalid argument supplied for foreach() in /www/wwwroot/aolonic.com/skin/templets/default/contents.html on line 45
相似回答