我被要求使用 POST 方法(标头中的公钥)验证通过 SSL 通过 API 接收的公钥
服务器有私钥,我需要在 API PHP 脚本中使用这两个文件对连接到 API 的人进行身份验证,如果成功则返回令牌。
我需要能够从 Linux Cli(或通过 PHP 函数)执行此操作。如果它的 Cli 我将通过 shell exec php 命令运行它。
密钥是使用“ssh-keygen -t rsa”生成的,没有密码。测试完成后,稍后将添加密码
我没有太多运气找到如何做到这一点的答案。我只找到了 SSH 连接或加密文件的解决方案。
可能认为 php 命令“ssh2_auth_pubkey_file”是合适的,但是当我需要做的就是验证公钥是私钥的正确密钥时,这需要一个连接资源。
谁能指出我正确的方向?
干杯约翰
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
命令的输出完全相等。