问题描述
我有下一个脚本,它使用 PHPSECLIB ver1.0 连接到 ubuntu 服务器并安装 unifi 控制器 ssl 证书。
安装ssl证书的步骤是正确的,问题是代码在write函数中停止,没有运行命令。
如何让我的脚本正确运行所有命令?
<?PHP
set_include_path(get_include_path() . PATH_SEParaTOR . 'PHPseclib');
include ("Crypt/RSA.PHP");
include ("Net/SSH2.PHP");
include ("Net/SFTP.PHP");
$key = new Crypt_RSA();
$key->loadKey(file_get_contents('key.ppk'));
$ip = "my ip";
$username = "ubuntu";
$ssh = new Net_SSH2($ip);
$sftp = new Net_SFTP($ip);
$ssh_login = $ssh->login($username,$key);
$sftp_login = $sftp->login($username,$key);
$pfx_content = file_get_contents("key/test_file.pfx");
$pfx_name = "test_file.pfx";
$pfx_password = "unifiadmin";
if (!$ssh_login) {
exit("SSH Login Failed");
}
if (!$sftp_login) {
exit("SFTP Login Failed");
}
$import_key = "";
$import_key .= "sudo keytool -importkeystore -srckeystore";
$import_key .= " $pfx_name -srcstoretype pkcs12 -srcalias 1";
$import_key .= " -destkeystore /usr/lib/unifi/data/keystore";
$import_key .= " -deststoretype jks -destalias unifi";
$import_key .= " -deststorepass aircontrolenterprise";
$import_key .= " -srcstorepass unifiadmin";
$migrate_key = "";
$migrate_key .= " sudo keytool -importkeystore -srckeystore";
$migrate_key .= " /usr/lib/unifi/data/keystore -srcstoretype JKS ";
$migrate_key .= " -destkeystore /usr/lib/unifi/data/keystore ";
$migrate_key .= " -deststoretype PKCS12 ";
$migrate_key .= " -srcstorepass aircontrolenterprise";
$migrate_key .= " -destkeypass unifiadmin";
function get_prompt($ssh){
echo "<pre>".$ssh->read("[prompt]")."</pre>";
}
$upload_pfx = $sftp->put($pfx_name,$pfx_content);
$ssh->exec("clear");
get_prompt($ssh);
$ssh->write("sudo service unifi stop\n");
get_prompt($ssh);
$ssh->write("ls\n");
get_prompt($ssh);
$ssh->write($import_key."\n");
get_prompt($ssh);
$ssh->write("yes\n");
get_prompt($ssh);
$ssh->write($migrate_key."\n");
get_prompt($ssh);
$ssh->write($pfx_password."\n");
get_prompt($ssh);
$ssh->write("sudo service unifi restart\n");
get_prompt($ssh);
$ssh->write("sudo service unifi start\n");
get_prompt($ssh);```
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)