В теории не должно иметь значения, как Вы encryped, ключ как агент хранит незашифрованный ключ, который должен быть тем же в обоих случаях.
Использовать ssh-add -L
проверять правильный открытый ключ после добавления каждого из двух по-другому зашифрованных ключей.
Эти два вывода тождественно и соответствуют открытому ключу, сохраненному на сервере?
Попробуйте:
$ echo 28fe2baadbe8da32ed0b99c69b11c01b2d141bc5b732b81e0960086de52fc891 |
awk '{sub(/\r/,"")} length == 64 && /^[[:xdigit:]]+$/'
28fe2baadbe8da32ed0b99c69b11c01b2d141bc5b732b81e0960086de52fc891
или используйте perl
вместо этого.
Исключить новую строку:
perl -ne 'print if length == 64 and /^[[:xdigit:]]+$/'
Исключить новую строку:
perl -nle 'print if length == 64 and /^[[:xdigit:]]+$/'
read s <./file
[ ${#s} -eq 64 ] &&
[ -n "${s##*[![:alnum:]]*}" ] &&
echo success\!
Если вы решили ограничить тест a-f, то измените [:alnum:]
на [:xdigit:]
. Хотя стоит отметить, что любое приложение, использующее POSIX классы [:alnum:]
и/или [:xdigit:]
также будет соответствовать A-[ZF]
- это часть спецификации .... Если это проблема, то вы можете добавить еще один тест типа:
...&& [ -n "${s##*[[:upper:]]*}" ] &&...
Как насчет целого ряда grep
grep -qxE '[[:xdigit:]]{64}' myid.id && echo "yes"
или (не уверен насчет этого) bash-specific
IFS= read -r id < myid.id
[[ ${#id} -eq 64 ]] && [[ $id =~ [[:xdigit:]]{64} ]] && echo "yes"
Попробуйте:
echo 28fe2baadbe8da32ed0b99c69b11c01b2d141bc5b732b81e0960086de52fc891 | grep [:0-9a-z:] | wc -c