gpt4 book ai didi

使用 ppk、rsa、pkcs8 进行 PHP 身份验证

转载 作者:行者123 更新时间:2023-12-02 06:42:20 25 4
gpt4 key购买 nike

我对 PHP 很陌生。我正在尝试运行一个 PHP 脚本(从我的 Windows 盒子),该脚本只需通过 SSH 进入一组使用列表的 Linux 服务器(Net/SSH2.php),在每台服务器上运行一个 bash 命令,然后将结果转储到文件。在我的公司开始使用 rsa key 之前,它运行得很好。我现在有 3 个文件,一个 .pkcs8(加密私钥)文件、一个 .rsa(BEGIN RSA 私钥)文件和一个 .ppk(putty,在同一文件中包含公共(public)行和专用行)。我能够将 .ppk 与 putty 一起使用,并仅通过提供我的用户 ID 进行身份验证,所以我确信这一切都是可能的。我只需要让它在我的 PHP 脚本中运行即可。

# multiple server file query script

# define username and password
$username = "1234567";
$password = "xxxxxxx";

# create variables and array for reading servers from txt document
# then exploding the contents of the txt file into a variable
$text_file_contents = file_get_contents ("serverlist.txt");
$server_array = explode("\r\n", $text_file_contents);

# using the SSH2 tie-in for PHP
include 'Net/SSH2.php';

foreach($server_array as $server) {

$ssh = new Net_SSH2($server);
if (!$ssh->login($username, $password)) {
echo "\r\n";
echo "------------------------------------";
echo "\r\n";

} else {
$cmd = $ssh->exec('BASH_COMMAND_HERE');
echo "$server";
echo "\r\n";
echo "\r\n";
echo "$cmd";
echo "\r\n";
echo "------------------------------------";
echo "\r\n";
}
$ssh->disconnect();
}
?>

做了一些研究,我想我需要以某种方式通过 phpseclib 调用这些键,但是说明不清楚,而且我不清楚我需要调用哪些文件以及如何在我的代码中使用它们因为我可能需要从上面的代码中删除,因为我将以不同的方式进行身份验证。我也被公司严格限制,所以在没有额外库的情况下我能做的事情越多越好。我确实设法在笔记本电脑上获取 RSA.php 库,但我想我可能需要其他库吗?

感谢您提供的任何帮助,如果没有,我将继续努力并锁定我的帐户;)

最佳答案

试试这个:

# multiple server file query script

include 'Crypt/RSA.php';

# define username and password
$username = "1234567";
$key = new Crypt_RSA;
//$key->setPassword('whatever');
$key->loadKey(file_get_contents('/path/to/key'));

# create variables and array for reading servers from txt document
# then exploding the contents of the txt file into a variable
$text_file_contents = file_get_contents ("serverlist.txt");
$server_array = explode("\r\n", $text_file_contents);

# using the SSH2 tie-in for PHP
include 'Net/SSH2.php';

foreach($server_array as $server) {

$ssh = new Net_SSH2($server);
if (!$ssh->login($username, $key)) {
echo "\r\n";
echo "------------------------------------";
echo "\r\n";

} else {
$cmd = $ssh->exec('BASH_COMMAND_HERE');
echo "$server";
echo "\r\n";
echo "\r\n";
echo "$cmd";
echo "\r\n";
echo "------------------------------------";
echo "\r\n";
}
$ssh->disconnect();
}
?>

我添加了 include 'Crypt/RSA.php'; 并将您的 $password = 'xxxx'; 行替换为:

    $key = new Crypt_RSA;
//$key->setPassword('whatever');
$key->loadKey(file_get_contents('/path/to/key'));

然后,我将您的 $ssh->login() 行替换为 $ssh->login($username, $key)

关于使用 ppk、rsa、pkcs8 进行 PHP 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61090884/

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