Проверьте, имеет ли содержание файла длину X и содержит только определенные символы

В теории не должно иметь значения, как Вы encryped, ключ как агент хранит незашифрованный ключ, который должен быть тем же в обоих случаях.

Использовать ssh-add -L проверять правильный открытый ключ после добавления каждого из двух по-другому зашифрованных ключей.

Эти два вывода тождественно и соответствуют открытому ключу, сохраненному на сервере?

4
25.07.2014, 19:30
4 ответа

Попробуйте:

$ 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:]]+$/'
5
27.01.2020, 20:46
read s <./file
[ ${#s} -eq 64 ] &&
[ -n "${s##*[![:alnum:]]*}" ] && 
echo success\!

Если вы решили ограничить тест a-f, то измените [:alnum:] на [:xdigit:]. Хотя стоит отметить, что любое приложение, использующее POSIX классы [:alnum:] и/или [:xdigit:] также будет соответствовать A-[ZF] - это часть спецификации .... Если это проблема, то вы можете добавить еще один тест типа:

...&& [ -n "${s##*[[:upper:]]*}" ] &&...
2
27.01.2020, 20:46

Как насчет целого ряда 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"
5
27.01.2020, 20:46

Попробуйте:

 echo 28fe2baadbe8da32ed0b99c69b11c01b2d141bc5b732b81e0960086de52fc891 | grep [:0-9a-z:] |  wc -c
1
27.01.2020, 20:46

Теги

Похожие вопросы