网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > PHP > PHP技术进阶 > 用SSH与PHP相连接 确保数据传输的安全性  

用SSH与PHP相连接 确保数据传输的安全性

2007-08-23  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

  小提示:

  有时服务器忙碌,或者一个连接出错,缓冲区没有数据,PHP脚本就会停止从一个命令输出(即使命令并没有完成!)中收集数据。你可以为此进行如下的操作:

中国网管论坛bbs.bitsCN.com

  

ssh2_exec($con, 'ls -al; echo "__COMMAND_FINISHED__"' ); 

网管u家u.bitscn@com

网管联盟bitsCN_com

  现在,在你不断地检查缓冲区的循环中,只需要看一下COMMAND_FINISHED。因为你就可以知道你拥有了所有的数据。为了避免无限循环(死循环),可以用一个10秒的超时限制: 网管网www.bitscn.com

  

$time_start = time();
  $data = "";
  while( true ){
  $data .= fread($stream, 4096);
  if(strpos($data,"__COMMAND_FINISHED__") !== false){
  echo "okay: command finished\n";
  break;
  }
  if( (time()-$time_start) > 10 ){
  echo "fail: timeout of 10 seconds has been reached\n";
  break;
  }
  } 网管联盟bitsCN@com

网管下载dl.bitscn.com

网管下载dl.bitscn.com

  在上面的例子中,你最好将stream_set_blocking设为false。

中国网管联盟bitsCN.com

  通过SSH发送文件

网管u家u.bitscn@com

  

ssh2_scp_send($con, "/tmp/source.dat", "/tmp/dest.dat", 0644); 网管网www_bitscn_com 

中国网管论坛bbs.bitsCN.com

  如果不能正常工作 网管bitscn_com

  请检查如下的几个方面:

网管u家u.bitsCN.com

  依照本文检查你操作的每一步

中国网管论坛bbs.bitsCN.com

  在服务器端,在sshd_config 中必须启用“PasswordAuthentication yes”。在大多数服务器上默认值是yes,不过有些情况下,你可能需要将下面的一行加入到文件中,即亲自动手打开这个功能:

中国网管论坛bbs.bitsCN.com

  

/etc/ssh/sshd_config:
  # Change to yes to enable tunnelled clear text passwords
  PasswordAuthentication yes
网管u家u.bitscn@com

网管论坛bbs_bitsCN_com

网管u家u.bitsCN.com

  如果作了改变,就需要重新启动SSH: 网管网www.bitscn.com

  

/etc/init.d/ssh restart 中国网管论坛bbs.bitsCN.com 
中国网管论坛bbs.bitsCN.com


TAGs   安全性   确保   连接   可以   //   echo   一个   PHP   if   to   需要      
 上一篇:PHP5手动最简安装方法   下一篇:Apache+PHP+MySQL建立数据库驱动的动态网站
用SSH与PHP相连接 确保数据传输的安全性 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: