Я пытаюсь вызвать ssh-keygen
, используя переменную через bash
в качестве ввода вместо файла, чтобы получить отпечаток открытого ключа. Я знаю, что мог бы использовать временный файл, чтобы обойти эту проблему, но по причинам, выходящим за рамки этого вопроса, я не хочу.
Этот метод не работает, так как говорит, что файл ключа недействителен (это точно)
echo $pubkey | ssh-keygen -lf /dev/stdin
Этот работает , но не использует переменную, а файл.
ssh-keygen -lf alpha.pub
Этот работает , но не использует переменную, а скорее перенаправленный файл.
ssh-keygen -lf /dev/stdin < alpha.pub
Это не работает, потому что я получаю неоднозначное перенаправление
ssh-keygen -lf /dev/stdin < $(echo $pubkey)
Буду признателен за понимание того, как заставить ssh-keygen читать переменную с открытым ключом, и, если возможно, объяснение того, почему перенаправления не выполняют то, что, я думаю, они должны делать. В частности, почему |
ведет себя не так, как <
, и почему третий пример - ambiguous redirect
. Я искал в Интернете, но многие из руководств по перенаправлению не отвечали на мои вопросы.