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

源链接:http://zhidao.baidu.com/question/249614714.html... 源链接:
http://zhidao.baidu.com/question/249614714.html
展开
 我来答
0o东边o0
2011-09-25 · TA获得超过211个赞
知道小有建树答主
回答量:139
采纳率:0%
帮助的人:123万
展开全部
一楼真是天真,直接复制粘贴我的原提问答案,都说了,那不是我使用的方法。
我亲自来回答你吧~
过程略有些繁琐,涉及安装到许多东西。但装好了可以自由使用远程连接。
安装部分:
检查:
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
返回了需要的信息。

希望能帮到你
来自:求助得到的回答
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
扶问迩s3
2011-09-25 · TA获得超过1276个赞
知道小有建树答主
回答量:702
采纳率:0%
帮助的人:339万
展开全部

一、最佳方案是在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);

手机输入真累~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式