Меня попросили аутентифицировать открытый ключ, полученный через API через SSL, используя метод POST (Открытый ключ в заголовке)
У сервера есть закрытый ключ и Мне нужно аутентифицировать человека, подключающегося к 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
.