[campus]輕鬆架-模組隨選無法自動更新,ssh登入會出現「登入127.0.0.1」失敗

模組隨選是個很好用的功能,但將系統搬到ubuntu22.04後卻不能用了,ssh登入會出現「sa」登入「127.0.0.1」失敗
原本以為是新版ubuntu有防火牆保護,造成連線失敗,試了一會兒,排除了這個可能性。
追了一下程式,覺得應是Net_SSH2這個套件的問題。
後來在https://ubuntu.pkgs.org/22.04/ubuntu-universe-amd64/php-phpseclib3_3.0.13-1_all.deb.html發現新版的程式
下載下來套用就可以了。
站長工具箱(急救版)modules/tad_admin/admin/adm_function.php
修改ssh_login function

//include XOOPS_ROOT_PATH . '/modules/tad_admin/admin/Net/SSH2.php';
//$ssh = new Net_SSH2($ssh_host, $xoopsModuleConfig['ssh_port']);
include XOOPS_ROOT_PATH . '/modules/tad_admin/admin/phpseclib3/autoload.php';
$ssh = new \phpseclib3\Net\SSH2($ssh_host, $xoopsModuleConfig['ssh_port']);

 

V3.0 Minimum PHP version: 5.6.1
參考網站:
https://phpseclib.com/
https://github.com/phpseclib/phpseclib

站長工具箱 修改 modules/tad_adm/class/OnlineUpgrade.php
大約871行 function ssh_login
 

//set_include_path(XOOPS_ROOT_PATH . '/modules/tadtools/phpseclib');
//require 'Net/SSH2.php';
//$ssh = new \Net_SSH2($ssh_host, $TadAmModuleConfig['ssh_port']);

//得注意phpseclib3安裝在哪兒,官方並沒有這個套件
include XOOPS_ROOT_PATH . '/modules/tad_admin/admin/phpseclib3/autoload.php'; 
$ssh = new \phpseclib3\Net\SSH2($ssh_host, $TadAmModuleConfig['ssh_port']);

 

phpseclib範例
 

<?php
   include('Net/SSH2.php');

   $ssh = new Net_SSH2('www.domain.tld');
   if (!$ssh->login('username', 'password')) {
       exit('Login Failed');
   }

   echo $ssh->exec('pwd');
   echo $ssh->exec('ls -la');
?>

 

phpseclib3範例
 

<?php
   include 'phpseclib3/autoload.php';

   $ssh = new \phpseclib3\Net\SSH2('www.domain.tld');
   if (!$ssh->login('username', 'password')) {
       exit('Login Failed');
   }

   echo $ssh->exec('pwd');
   echo $ssh->exec('ls -la');
?>

 

本篇發表於 Linux系統, 程式設計。將永久鏈結加入書籤。