入驻商户-久趣源码交流论坛
入驻商户-久趣源码交流论坛
入驻商户-久趣源码交流论坛
加好友-久趣源码交流论坛

在网页中执行shell脚本实现远程自动搭建

近期不少童靴倒腾在网站上面 直接一键搭建,基本都是利用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/9qyscom";   //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');
 
}

——

  • 在网页中执行Shell脚本来实现远程自动搭建是可能的,但需要谨慎对待,因为这涉及到安全性和潜在的风险。

    以下是一些步骤和注意事项:

    1. 确保你的网页具有执行Shell脚本的权限。这可能需要服务器端的配置和设置。

    2. 编写你的Shell脚本,确保它是安全和可靠的。这意味着你应该仔细检查脚本中的每一行代码,确保它不会导致潜在的安全漏洞或破坏性操作。

    3. 在网页中创建一个表单或按钮,用于触发执行Shell脚本的操作。这可以通过JavaScript来实现,当用户点击按钮时,通过AJAX请求将Shell脚本发送到服务器执行。

    4. 在服务器端,接收到Shell脚本的请求后,进行安全性检查,确保请求来自可信任的来源,并验证用户的身份。

    5. 执行Shell脚本时,确保以安全的方式运行,例如使用特定的用户权限或沙箱环境来限制脚本的访问权限。

    6. 监控执行过程,确保脚本的执行没有出现错误或异常情况。同时,记录执行日志以便后续排查问题。

    7. 定期更新和审查Shell脚本,以确保其安全性和可靠性。

    请注意,执行Shell脚本的能力可能会导致潜在的安全风险,因此在实施之前,务必评估和考虑所有潜在的风险,并采取适当的安全措施来保护你的系统和数据。

请登录后发表评论

    没有回复内容