Я пытаюсь вызвать 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
. Я искал в Интернете, но многие из учебников по перенаправлению, похоже, не отвечали на мои вопросы.