php的ssh2扩展实现远程控制

大概思路:
1.php环境
2.php的ssh2的安装与使用
3.确保防火墙与网络正常 能ping通就行

具体实施
windows的演示
1.下载php中的ssh2扩展(注意php的版本号)
下载地址 http://pecl.php.net/package/ssh2
如图所示(说明书)

2.解压找到你环境的etc目录把你解压得到php_ssh2.dll的文件放在里面就OK

3.编辑你的php.ini 加入这些代码就OK了
extension=php_ssh2.dll

4.重启你的环境就OK 写上你的phpinfo 你会看到如图所示


linux的演示 (还有lnmp环境不会装的请看 http://blog.csdn.net/qq_36030288/article/details/53858357)
1.下载php中的ssh2扩展(注意php的版本号)
下载地址 http://pecl.php.net/package/ssh2
wget http://pecl.php.net/get/ssh2-0.13.tgz
tar zxf ssh2-0.13.tgz
cd ssh2-0.13
用环境中的php的phpize自动检测匹配版本如图所示


/usr/local/nginxphp/bin/phpize
./configure --with-php-config=/usr/local/nginxphp/bin/php-config
make && make install
vim /usr/local/nginxphp/lib/php.ini 
extension=/usr/local/nginxphp/lib/php/extensions/no-debug-non-zts-20131226/ssh2.so



2.重启环境就OK


$host = '127.0.0.1';//被控制的linux的ip
$user = 'root';//用户名
$passwd = '123456';//密码
$connection = ssh2_connect($host, 22);// 链接远程服务器
if (!$connection)
	die('connection to ' . $host . ':22 failed');
// 获取验证方式并打印
$auth_methods = ssh2_auth_none($connection, $user);
if (in_array('password', $auth_methods)) {
	// 通过password方式登录远程服务器
	if (ssh2_auth_password($connection, $user, $passwd)) {
		echo $user . ' login OK<br/>';
		$stream = ssh2_exec($connection, "service mysqld restart");
		// 执行php
		stream_set_blocking($stream, true);
		// 获取执行pwd后的内容
		if ($stream === FALSE)
			die("pwd failed");
		echo 'mysqld: ' . stream_get_contents($stream) . '<br/>';
	} 
}



展开阅读全文

没有更多推荐了,返回首页