知识大全 用SSH与PHP相连接 确保数据传输的安全性
Posted 知
篇首语:知识是果树,知识的应用就是果树上结的果实。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用SSH与PHP相连接 确保数据传输的安全性相关的知识,希望对你有一定的参考价值。
用SSH与PHP相连接 确保数据传输的安全性 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
SSH可以通过将联机的封包加密的技术进行资料的传递; 使用SSH可以把传输的所有数据进行加密 即使有人截获到数据也无法得到有用的信息 同时数据经过压缩 大大地加快了传输的速度 总之 通过SSH的使用 可以确保资料传输比较安全并且传输效率较高
不过 并非所有人知道PHP可以与SSH连接的特性以及与执行远程命令的能力 不过这方面却非常有用 由于我们可以在很多不同的方面利用PHP 因此它有很多设置选项来控制其行为 一组庞大的可选参数能够保证您可以将 PHP 用于许多不同的目的 但这同时也意味着这些参数和服务端配置的组合会带来一些安全问题 笔者一直在PHP CLI应用程序中使用SSH 笔者是从cronjobs中使用它的 不过一开始并非十分简单 可以说颇费周折 关于安全使用Shell 函数的手册也不是十分实用 笔者进行了多次试验之后才有了今天这篇小文章 愿您读了之后能为您配置PHP节省一点儿时间
在这篇文章中 笔者需要假设
你正在运行的操作系统是Debian / Ubuntu 如果你运行的不是Debian / Ubuntu 你可能需要用你的Linux发行版本提供的数据包管理器来替换本文对应内容
你运行的是PHP 如果你运行的不是PHP 可用PHP 代替之
你对PHP和服务器管理有基本的了解
你已经安装了PHP
先决条件
安装程序包
首先 让我们安装下面的程序包
>
安装完成进入下一步
编译libssh
在从sourcefe网站下载了Libssh 之后 我们需要编译它 不过不要担心 你只需要按照如下的方法操作
>
如果你想检查是否有了一个新版本 可以查看SF NET 不过 这个版本就足够了
安装
安装ssh so
下一步 我们需要将libssh和 PHPr链接起来 有一个PECL模块可以完成这个功能 我们可以使用PEAR安装它
pear install f ssh
f参数确保SSH 被安装 即使并没有一个稳定的选择对象 你还可以使用如下的包名称 ssh beta来强行运行
现在你需要确保我们这个新的SSH SO模块被PHP加载 编辑你的php ini文件(对于CLI实用程序 /etc/php /cli/php ini 对于Apache实用程序 /etc/php /apache /php ini)
extension=ssh so
这应该放在 Dynamic Extensions 的下面 大约在第 行左右
PHP支持SSH编写代码
你刚刚在PHP中启用了SSH 那么现在应该如何利用它呢?有两个选择 SSH支持
执行方法
这告诉你的服务器的操作系统来执行什么东西 并且通过管道传回到你的脚本
外壳方法
这种方法在操作系统中打开一个实际的外壳 这正像通过终端应用程序登录时所操作的那样 有一些路由器并没有一个完全的POSIX一致性实施过程 而是在你登录时立即运行其自身的应用程序 这时你就需要这种方法
下面我们分别详述之
第一种方法 执行
你最好为下面的代码创建函数或者是一个类 不过本文仅仅起到一个为您提供基本观念的作用 所以说你可以如此开始
>
第二种方法 外壳
同样道理 你也可以为如下的代码编写函数或者一个类 不过 本文仅仅提供基本观念
>
小提示
有时服务器忙碌 或者一个连接出错 缓冲区没有数据 PHP脚本就会停止从一个命令输出(即使命令并没有完成!)中收集数据 你可以为此进行如下的操作
>
现在 在你不断地检查缓冲区的循环中 只需要看一下MAND_FINISHED 因为你就可以知道你拥有了所有的数据 为了避免无限循环(死循环) 可以用一个 秒的超时限制
>
在上面的例子中 你最好将stream_set_blocking设为false
通过SSH发送文件
>
如果不能正常工作
请检查如下的几个方面
依照本文检查你操作的每一步
在服务器端 在sshd_config 中必须启用 PasswordAuthentication yes 在大多数服务器上默认值是yes 不过有些情况下 你可能需要将下面的一行加入到文件中 即亲自动手打开这个功能
>
如果作了改变 就需要重新启动SSH
> cha138/Article/program/PHP/201311/20797
相关参考
几种常用PHP连接数据库的代码示例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!PHP连接数据库之
在LINUX环境中用PHP连接Oracle数据库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
手机如何用数据线连接电脑上网使用数据线连接貌似很麻烦,而且还不一定成功,要是电脑有无线网卡,直接用无线网卡共享网路就可以了4个步骤解决。1、确保你的手机有root权限。2、手机要安装USB驱动。可以用
知识大全 Java及数据库面试题 包含SSH,数据库和Java基础
Java及数据库面试题包含SSH,数据库和Java基础 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧
知识大全 平时我们所见的网站中,php用于哪部分编程,可以举一个例子介绍下吗
平时我们所见的网站中,php用于哪部分编程,可以举一个例子介绍下吗?facebook主要用php来传送数据,在后台与前台之间起连接作用(facebook后台用c语言),其实各大网站都差不多,真正高并发
知识大全 php连接函数implode与分割explode的深入解析
目前学习php的人有很多很多进行php培训的朋友在学习中总会问到这样一个问题:php连接函数implode是什么呢?php可以将字符串分割成数组同时翻过了也可以将数组连接成字符串确切的说是可以将数
知识大全 Windows下PHP与SQL Server的连接
Windows下PHP与SQLServer的连接 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
用PHP操纵Oracle的LOB类型的数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!《PHP+
下面提供一款最全面的asp数据库连接源码哦可以根据不同类型判断是连接access数据库还是mssql数据库哦cha138/Article/program/net/201311/14364
最好用的PHP数据库操作类-ezSQL 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ezSQL