近期不少童靴倒腾在网站上面 直接一键搭建,基本都是利用php_ssh2组件 实现的,这里个大家分享下。 首先要安装php_ssh2组件,linux中centos7下有ssh2源,直接安装。window下则需要自行下载dll组件加载,具体方法自行搜索。
安装完毕后就可以在PHP写执行shell脚本的程序了 - $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脚本的操作了,下面来一些简单的,例如建立一个文件夹。 - $e="mkdir -m 777 /var/www/html/35bokecom"; //shell脚本语句
- $stak=ssh2_exec($ssh2, $e); //通过ssh2_exec执行语句
复制代码命令执行后那想要知道执行结果呢,我们可以通过下面方式获取命令执行结果 - stream_set_blocking($stak, true);
-
- $output = stream_get_contents($stak);
-
- fclose($stak);
复制代码此时,获取string类型的output。
PS:如果你的服务器启用了sshkey那就使用下面方式的登陆 - $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');
-
- }
复制代码
|