近期不少童靴倒腾在网站上面 直接一键搭建,基本都是利用php_ssh2组件 实现的,这里个大家分享下。
首先要安装php_ssh2组件,linux中centos7下有ssh2源,直接安装。window下则需要自行下载dll组件加载,具体方法自行搜索。
安装完毕后就可以在PHP写执行shell脚本的程序了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
$ssh_user= 'root' ; // 登陆linux的ssh2用户名 $ssh_pwd= '********' ; // 登陆linux的密码 $ssh_port= '22' ; // 端口号22 $ssh_host= '192.168.200.128' ; // 服务器IP地址 // 先测试拓展是否安装并开启 if (!function_exists( "ssh2_connect" )){ exit ( 'SSH扩展没有安装或者没有安装成功' ); } // 建立ssh2连接 $ssh2 = ssh2_connect($ssh_host, $ssh_port); if (!$ssh2){ exit ( '连接服务器失败' ); } else { echo '成功连接上了服务器' ; } // 连接成功后进行密码验证,没验证无法进行其他操作。 if (!ssh2_auth_password( $ssh2, $ssh_user, $ssh_pwd )){ return false ; } |
成功连接,并且通过密码验证后就可以进行shell脚本的操作了,下面来一些简单的,例如建立一个文件夹。
1
2
|
$e= "mkdir -m 777 /var/www/html/90175com" ; //shell 脚本语句 $stak=ssh2_exec($ssh2, $e); // 通过ssh2_exec执行语句 |
命令执行后那想要知道执行结果呢,我们可以通过下面方式获取命令执行结果
1
2
3
4
5
|
stream_set_blocking($stak, true ); $output = stream_get_contents($stak); fclose($stak); |
此时,获取string类型的output。
PS:如果你的服务器启用了sshkey那就使用下面方式的登陆
1
2
3
4
5
6
7
8
9
10
11
12
13
|
$connection=ssh2_connect($ssh_host,$ssh_port); if (ssh2_auth_pubkey_file($connection, 'root' , '/home/id_rsa.pub' , '/home/id_rsa' , 'secret' )) { echo "Public Key Authentication Successful\n" ; } else { die( 'Public Key Authentication Failed' ); } |
没有回复内容