Аутентификация Unix не работает с использованием ключевого файла Unix для одного пользователя, но работает для другого

Вероятно, проблема заключается в размещении знака -в вашем списке персонажей.

Вы уже использовали тот факт, что диапазоны символов могут быть выражены с помощью [start-end], например, [a-z]является сокращением для [abcdefghijkl...xyz](, хотя см. предостережение ниже ). Это означает, что -является специальным символом, и если он встречается между двумя «обычными» символами, он интерпретируется как указание на еще один диапазон, охватывающий эти два символа и все символы между ними.

Конечно, это работает только в том случае, если символ после -лексикографически «позже» в порядке сортировки, чем предшествующий ему символ, что также является причиной вашего сообщения об ошибке (, вы увидите, что он идет если вместо этого вы скажете (-_, хотя это не решит вашу проблему).

Поскольку вы, очевидно, хотите сопоставить литерал -и в зависимости от того, как интерпретируются регулярные выражения в .nanorc, вы либо

  • должны избежать его (, то есть \-), или
  • поместите его первым или последним в списке символов (, т. е. [-etc]или [etc-]), что было бы стандартом в регулярных выражениях POSIX и GNU и, следовательно, наиболее вероятным решением в системе Linux .

См., например,. здесь для дальнейшего использования.

Предупреждение:Утверждение выше «[a-z]является сокращением для [abcdefghijkl...xyz]не безусловно верно ! То, как интерпретируется диапазон, зависит от настроек локали, в частности от порядка сопоставления.

  • В локали "C" порядок соответствует кодовому значению ASCII, то есть ABC...XYZ...abc...xyz. Здесь [a-z]на самом деле означает «все символы нижнего регистра».
  • В большинстве других локалей символы верхнего -и нижнего -регистра -группируются вместе, то есть порядок aAbBcC...xXyYzZ. Здесь [a-z]будет означать «все символы нижнего регистра и все символы верхнего регистра, кроме Z.
  • Обработка символов, отличных от -ASCII, таких как "умлауты", является еще одной проблемой.

См. здесь и здесь для дальнейшего обсуждения предмета.

0
03.03.2020, 09:12
1 ответ

Вы можете отладить это, проверив файлы /var/log/messages, /var/log/secure. Посмотрите, что написано в этих файлах при входе (на свой компьютер и на хост ).

Я также рекомендую вам проверить права доступа к файлам. Вот пример с одного из моих хостов, как должны быть права доступа к файлам в каталоге .ssh. Тип

ls -al ~/.ssh/

для просмотра файлов, их разрешений и владельцев. они должны принадлежать пользователю, а некоторые доступны для записи только пользователю.

-rw------- 1 user user   407 sep 30  2016 authorized_keys
-rw------- 1 user user  1675 mar 15  2013 id_rsa
-rw-r--r-- 1 user user   405 mar 15  2013 id_rsa.pub
-rw-r--r-- 1 user user 70884 feb 14 08:08 known_hosts
0
28.04.2021, 23:21

Теги

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