Próbuję wywołać ssh-keygen
przy użyciu zmiennej przez bash
jako dane wejściowe zamiast pliku, aby uzyskać odcisk palca klucza publicznego. Jestem świadomy, że mogę użyć pliku tymczasowego, aby obejść ten problem, ale z powodów poza zakresem tego pytania, nie chcę.ssh-keygen akceptuje stdin
Metoda ta ma nie pracę jak mówi plik klucza jest nieprawidłowy (jest to poprawne na pewno)
echo $pubkey | ssh-keygen -lf /dev/stdin
Ten robi prace, ale nie używa zmiennej, raczej plik.
ssh-keygen -lf alpha.pub
Ten robi prace, ale nie używa zmiennej, raczej przekierowany pliku.
ssh-keygen -lf /dev/stdin < alpha.pub
to robi nie pracę bo mam niejednoznaczne przekierować
ssh-keygen -lf /dev/stdin < $(echo $pubkey)
chciałbym docenić pewne wyobrażenie, jak dostać ssh-keygen do zapoznania się ze zmiennej z kluczem publicznym, a jeśli możliwe, wyjaśnienie, dlaczego przekierowania nie robią tego, co myślę, że powinni robić. W szczególności dlaczego |
zachowuje się inaczej niż <
i dlaczego trzeci przykład to ambiguous redirect
. Szukałem w Internecie, ale wiele z samouczków przekierowujących nie odpowiadało na moje pytania.
Na Ubuntu 14.04, Bash 4.3.11, jądro 3.13.0-24-generic, to nie działa i zgłasza '/ dev/stdin: Stale file handle'. –
Nie działa na komputerach Mac. – Will