我被要求使用 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
。