命令行/PHP 上的 RSA 公钥和私钥验证

命令行/PHP 上的 RSA 公钥和私钥验证

我被要求使用 POST 方法(标头中的公钥)通过 SSL 对通过 API 收到的公钥进行身份验证

服务器拥有私钥,我需要使用 API PHP 脚本中的这两个文件对连接到 API 的人员进行身份验证,并在成功时返回令牌。

我需要能够从 Linux Cli(或通过 PHP 函数)执行此操作。如果是 Cli,我将通过 shell exec php 命令运行它。

密钥是使用“ssh-keygen -t rsa”生成的,没有密码。测试完成后将添加密码

我没能找到如何做到这一点的答案。我只找到了 SSH 连接或加密文件的解决方案。

我认为 php 命令“ssh2_auth_pubkey_file”可能是合适的,但是当我需要做的只是验证公钥是否是私钥的正确密钥时,这需要连接资源。

有人能给我指出正确的方向吗?

干杯,约翰

答案1

ssh-keygen提供一种比较私钥和公钥文件的机制。

假设你的公钥在public_key_file,私钥在private_key_file。然后执行

ssh-keygen -y -f private_key_file

将要求你输入密码,然后输出类似

ssh-rsa e9gwUnostzLTWF+djmzcMNNS/YcWjZR...

cat public_key_file将显示

ssh-rsa e9gwUnostzLTWF+djmzcMNNS/YcWjZR...后跟包含 的行user@hostname

您可以从命令中去掉最后一行cat并验证它是否与命令的输出完全相等ssh-keygen -y

相关内容