gpt4 book ai didi

PHP shell_exec ssh连接

转载 作者:IT王子 更新时间:2023-10-29 01:07:57 25 4
gpt4 key购买 nike

我知道这个问题以前曾以许多不同的方式被问过,但我仍然在摸不着头脑,为什么我不能让它工作。

首先,我有两个 SLES 服务器设置,它们是服务器 A 和服务器 B,它们都在一个小型专用网络上运行,只有专门的团队才能访问。

服务器 A 配置为运行 Apache、PHP、MYSQL 和 ssh 的 Web 服务器,所有这些都没有问题地运行。

服务器 B 用于运行琐碎的任务,同时还安装并激活了 ssh。

我在服务器 A 上创建了我的 rsa key 并将其安装在服务器 B 上,当在命令行运行时,我会立即登录,而无需询问密码。我已经为服务器 A 上的 root 和 nobody 帐户重复了这个过程。

我已将此 PHP 页面添加到服务器 A,如下所示:

<?php
shell_exec('ssh root@192.162.0.5 ./StartTest.sh');

header("Location: archive.php?page=home");
?>

但是当我运行它时,它并没有创建我的文件夹。如果我从命令行运行它,它对两者都有效(我想两者,我不记得我现在是否在 cli 上为 nobody 帐户尝试过)root 和 nobody 帐户。我什至将 nobody 帐户添加到根组,但仍然不高兴。

我在这里错过了什么吗?我想做的就是通过 php 和 ssh 从服务器 A 连接到服务器 B 以执行一个命令并重定向到网站上的另一个页面。

由于我的扑热息痛库存所剩无几,我们将不胜感激。

最佳答案

George Cummins 所说的内置 SSH 支持并不存在。它是默认情况下不包含的 PHP 扩展。它必须单独编译,并且众所周知难以设置/使用。我的建议是使用 phpseclib, a pure PHP SSH implementation :

<?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');
?>

关于PHP shell_exec ssh连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7744793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com