Su authentication failure как исправить

Как исправить ошибку аутентификации SSH. Практические руководства для IT-специалистов. В Timeweb Cloud вы можете найти необходимую инструкцию или стать автором. Участвуйте в нашей контент-программе и внесите свой вклад в развитие сообщества.
  • Главная

  • Инструкции

  • Linux

  • Как исправить ошибку аутентификации SSH

Blog

Основные механизмы аутентификации пользователей при подключении через SSH — проверка пароля и сверка ключей. Их можно применять вместе или по отдельности, это настраивается в файле конфигурации SSH. Оба способа надежные, но иногда при их использовании можно столкнуться с ошибкой authentication failed. В этой статье разберемся, какие у этого сбоя могут быть причины и как их устранить.

Как Исправить Ошибку Аутентификации Ssh (2)

В чем суть ошибки

У сообщения «authentication failed» перевод на русский предельно простой. Этот вывод в терминале говорит о том, что аутентификация пользователя не удалась.

Аутентификация — это проверка подлинности. Например, у вас есть сервер на cloud.timeweb.com. Вы настроили SSH для удаленного подключения. Чтобы система защиты вас пропустила, нужно пройти процедуру аутентификации – подтвердить, что это действительно вы. 

Метод проверки подлинности закреплен в конфигурационном файле SSH. По умолчанию это аутентификация по паролю. 

Другой вариант — использование пары SSH-ключей для проверки подлинности. В таком случае у пользователя на компьютере хранится закрытая часть ключа. На сервере располагается открытая часть. При попытке установить соединение эти части сравниваются. При совпадении доступ открывается. Если совпадения нет, появляется сообщение об ошибке — например, следующая ошибка SSH:

Permission denied (publickey)

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

Ниже разберемся с наиболее частыми ситуациями. 

Ошибка при использовании пароля

Обычно проблемы возникают из-за неверного имени пользователя или пароля. Также стоит обратить внимание на конфигурацию сервера — может стоять запрет на аутентификацию через пароль. Как это проверить:

  1. Откройте файл конфигурации на сервере. Он находится по пути /etc/ssh/sshd_config.
  2. Найдите строку PasswordAuthentication. По умолчанию у неё значение `yes`. Это значит, что проверка по паролю разрешена.
  3. Если в вашем файле конфигурации параметр PasswordAuthentication имеет значение `no`, то подключиться по паролю не получится. Чтобы исправить ситуацию, измените значение на `yes`.

С паролем связано и появление ошибки su authentication failure. Вернее, с отсутствием парольной проверки у пользователя root. Если при такой конфигурации выполнить команду `su` без параметров, то вернется ошибка. Чтобы ее устранить, достаточно назначить пользователю root парольную защиту.

Ошибка при использовании ключей

Одна из самых распространенных проблем — использование не тех ключей при установке соединения. Часто это происходит, если с одного компьютера приходится подключаться к разным хостам. Самый простой способ не запутаться — давать понятные названия с указанием на то, для каких целей вы используете файлы аутентификации.

Использование большого количества ключей без явного указания нужного приводит еще к одной ошибке: 

Too many authentication failures for user

Причина сбоя — превышение числа попыток. Это случается из-за того, что SSH-клиент пытается подключиться к хосту, используя все доступные ключи. Исправить ситуацию можно с помощью опций IdentitiesOnly и IdentityFile. Пример запроса на подключение:

ssh -o IdentitiesOnly=yes 
    -o IdentityFile=id1.key
    user@example.com

Чтобы каждый раз не прописывать это в командной строке при подключении, можно указать необходимую настройку в конфигурационном файле SSH ~/.ssh/config. Пример такой настройки:

Host 192.168.3.44
    IdentityFile ~/.ssh/id_rsa
Host *
    IdentitiesOnly=yes

В этом случае SSH будет использовать только идентификаторы, указанные в файлах ssh_config, плюс идентификатор, указанный в командной строке. Идентификаторы, предоставленные агентом, будут игнорироваться.

При использовании ssh-ключей может возникнуть еще одна ошибка:

Permission denied (publickey, password)

Ее причиной может быть ввод неверной ключевой фразы. 

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

Восстановление открытого ключа

Если у вас есть закрытый ключ, но вы потеряли открытую часть, то эту проблему можно решить стандартными средствами OpenSSH.

Самый просто способ — использовать утилиту ssh-keygen.

Запустите терминал и выполните команду:

ssh-keygen -y -f ~/.ssh/id_rsa

Здесь ~/.ssh/id_rsa — это путь к закрытому части, которая хранится на компьютере. В ответ вы получите последовательность символов. Это и есть открытая часть, которую необходимо добавить на сервер.

В среде Windows решить ту же задачу можно с помощью утилиты PuTTYgen, которая входит в набор PuTTY. В ней есть кнопка Load, через которую вы можете загрузить закрытый ключ. Для этого нужно лишь знать директорию, в которой он хранится на компьютере.

После импорта вы увидите окно с полем `Public key for…`. В нём отобразится открытая часть, которую можно скопировать и отправить на сервер.

Восстановить закрытую часть по открытой нельзя — это противоречит основам безопасности.

На что еще обратить внимание

У понятия «authentication failed» перевод дает весьма общее представление о причине сбоя. Проблема может крыться не только в пароле или ключах. Значение имеют также выставленные права доступа и алгоритмы шифрования.

Неправильная конфигурация клиента 

Распространенная ошибка — использование клиента SSH/SFTP (SSH, PuTTY, Filezilla) без правильной настройки всех необходимых параметров, таких как хост, порт, имя пользователя или закрытый ключ. 

Другая частая проблема возникает, когда вы используете неподдерживаемый сертификат. Например, пытаетесь добавить в PuTTY файл ключа *.pem вместо файла ключа *.ppk.

Противоречия в файле конфигурации

Убедитесь, что в файле /etc/ssh/sshd_config установлены параметры, которые не противоречат друг другу. Такое может быть, например, при отключении парольной проверки или запрете на подключение для пользователя root.

Распространенный пример конфликта: у параметра PasswordAuthentication установлено значение `yes`, а у параметра PermitRootLogin — значение `no` или `without-password`. Из-за этого сервер не понимает, как проверять пользователей, и не пускает никого.

Настройка прав доступа

У OpenSSH строгие правила к тому, кто должен быть владельцем файлов и какие на них должны быть выставлены права доступа.

Убедитесь, что на сервере выставлены следующие доступы:

  • ~./ssh – 700.
  • ~./ssh принадлежит текущему аккаунту.
  • ~/.ssh/authorized_keys – 600.
  • ~/.ssh/authorized_keys принадлежит текущему аккаунту.

На клиенте также проверьте разрешения следующих файлов:

  • ~ / .ssh / config – 600.
  • ~ / .ssh / id_ * – 600.

Почему важен владелец? Например, вы настраивали доступ через Secure Shell от имени одного пользователя, а затем пытаетесь подключиться под другим аккаунтом, у которого нет прав даже на чтение содержимого защищенных директорий с аутентификационными данными.

Использование устаревших алгоритмов

В OpenSSH начиная с седьмой версии не поддерживаются старые ключи, которые используют алгоритм цифровой подписи — DSA. Ключи ssh-dss считаются слишком слабыми для того, чтобы можно было доверять им защиту подключения к серверу.

Если у вас старые ключи, оптимальное решение — сгенерировать и добавить на хосты новые, которые основаны на более стойких алгоритмах. 

Есть и альтернатива, но пользоваться ей придется на свой страх и риск. Речь идет об изменении файла конфигурации /etc/ssh/sshd_config. Если установить параметру PubkeyAcceptedKeyTypes значение `+ssh-dss`, то можно будет использовать ключи, сгенерированные с помощью устаревшего алгоритма цифровой подписи.

Дополнительные опции могут понадобиться и на SSH-клиенте. Например, при подключении к серверу с ПО, которое давно не обновлялось. В частности, такие проблемы возникают при подключении к хостам на CentOS 6, поддержка которой прекращена в конце 2020 года. Чтобы исправить эту ошибку, необходимо добавить опцию `-oHostKeyAlgorithms=+ssh-dss`:

 ssh -oHostKeyAlgorithms=+ssh-dss user@legacyhost

Ошибки на сторонних сервисах

Проблемы аутентификации могут возникать и при использовании сторонних сервисов. Например, при подключении к VK API пользователи сталкиваются с сообщением user authorization failed invalid session. Устранить такой сбой самостоятельно не получится — нужно обращаться в поддержку.

Заключение

Причина ошибки аутентификации может быть как на стороне клиента, так и на стороне сервера. Начинайте диагностику с самого простого: проверьте правильность имени пользователя и пароля, если он используется, выбор SSH-ключа в агенте. Если это не помогает устранить сбой, проверьте конфигурацию подключения и права доступа к файлам, которые OpenSSH использует для проверки подлинности пользователей.

  • Печать

Страницы: [1]   Вниз

Тема: su — выдаёт Authentication failure  (Прочитано 13381 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
classic

su — выдаёт Authentication failure  смотрел  pam там всё нормально так как есть сервак где такие же настройки pam и там всё работает) воот
в логах пишет это

su[6331]: pam_tcb(su:auth): Authentication failed for root from (uid=500)


Оффлайн
лесной_зонтик

Э,.. а чем не устраивает тот же

sudoили

sudo -s
если же так важно именно su, то может стоит пароль на root поставить?

Моя мечта поставить на комп Linux, Unix, *BSD, Mac OS X, OpenSolaris, OS/2, Windows.
Не спрашивайте зачем. Сам не знаю ???


Оффлайн
Бумер


Оффлайн
Sly_tom_cat

если руту пароль не задали — то он просто заблокирован и su без параметра (т.е. переход под рута) работать не должно. Если я набираю su и ввожу свой пароль — то само собой получаю — сбой при аутентификации.


Оффлайн
artifactor

Xubuntu 16.04 x64
Обои для рабочего стола и Space Ambient


Оффлайн
BatlKruyzer

Это мне кажется, или если в экспертной установке системы не включено разрешение постоянно работать под root, то команда su не будет работать?

Во имя процесса-отца, процесса-сына и святого root’а. Админь.


Оффлайн
classic

пароль на root само собой стоит
в pam мог сделать только без пароля чтобы заходил
вообщем хз куда смотреть((
su Нужен без него мне тяжко


Оффлайн
лесной_зонтик

а ты уверен что ты вводишь пароль правильно?

Моя мечта поставить на комп Linux, Unix, *BSD, Mac OS X, OpenSolaris, OS/2, Windows.
Не спрашивайте зачем. Сам не знаю ???


Оффлайн
VlaoMao

sudo и sudo su мало чтоль?


Оффлайн
AyaTooru


  • Печать

Страницы: [1]   Вверх

I tried to su to root so I could install lights, but I get an authentication error when I try:

user@host:~$ su
Password: 
su: Authentication failure

Seth's user avatar

Seth

56.2k43 gold badges144 silver badges196 bronze badges

asked Apr 11, 2014 at 18:13

Michael's user avatar

3

The root account is disabled by default in Ubuntu, so there is no root password, that’s why su fails with an authentication error.

Use sudo to become root:

sudo -i  

answered Apr 11, 2014 at 18:18

Seth's user avatar

SethSeth

56.2k43 gold badges144 silver badges196 bronze badges

8

If su doesn’t work, I do this (in bash):

user@host:~$ sudo bash
root@host:~# su
root@host:/home/user# 

Voila! You are now root!

A shortcut for this would be sudo su. In this case given that you are a member of /etc/sudoers with all privileges, then you would only need your user’s password.

answered Apr 11, 2014 at 19:19

e.thompsy's user avatar

e.thompsye.thompsy

3211 silver badge5 bronze badges

8

You are getting Authentication failure because you are trying to become root which is disabled by default in all versions of Ubuntu. This can be easily circumvented in two ways:

  1. Enabling the root account. This can be achieved by setting up a password.
  2. Instead of su use sudo -i or better yet, append to any command sudo in the way of:

    sudo apt-get update
    [sudo] password for braiam:
    

I wouldn’t recommend enabling root, since it could raise a security concern, for example, if you use any service exposed to the web.

Walkman's user avatar

answered Apr 11, 2014 at 18:38

Braiam's user avatar

BraiamBraiam

66.2k30 gold badges174 silver badges262 bronze badges

Open root with sudo -s and when it’s in this mode type:

passwd

Then, choose password. This password will be for su command.

answered Apr 29, 2014 at 17:04

aastefanov's user avatar

aastefanovaastefanov

1,33311 silver badges16 bronze badges

Use sudo your_command in place of su.
ie

sudo apt-get install "program to install"

answered Apr 11, 2014 at 18:18

girardengo's user avatar

girardengogirardengo

4,9051 gold badge25 silver badges31 bronze badges

Содержание

  1. Что делает команда su
  2. Имитация входа с помощью команды su —
  3. Различие между su и su-
  4. Команда su — выдаёт Authentication failure в Ubuntu
  5. Заключение

В этой статье рассказано, что такое команда su (замена пользователя) в Unix/Linux и в чем разница между командами su и su —. Linux — это многопользовательское ядро операционной системы, это означает, что несколько пользователей могут одновременно входить в систему Linux.

Вы можете переключаться между разными пользователями в командной строке с помощью команды su. Команда su означает «заменить пользователя». Данная команда изменяет учетные данные пользователя на пользователя root.

Su команда в Linux, сравнение команд su и su - с примерами.

Su команда в Linux, сравнение команд su и su — с примерами.

Что делает команда su

Команда su, как показано ниже, изменит учетные данные пользователя на учетные данные другого пользователя. Давайте посмотрим это на примере:

[raghu@redhat-server ~]$ su jack
Password:
[jack@redhat-server raghu]$ id
uid=501(jack) gid=501(jack) groups=501(jack),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Команда id выводит информацию о текущем пользователе. В приведенных выше выходных данных вы можете увидеть измененного пользователя. Если команда su не имеет аргументов, то по умолчанию она изменяется на пользователя root. Справочные информация Ubuntu объясняет это более подробно.

[jack@redhat-server raghu]$ su
Password:
[root@redhat-server raghu]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Имитация входа с помощью команды su —

С помощью команды «su-login» или «su-l» или просто «su -« вы можете переключать пользователя, как если бы это был вход с терминала.

[raghu@redhat-server ~]$ su - jack
Password:
[jack@redhat-server ~]$ id
uid=501(jack) gid=501(jack) groups=501(jack),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Различие между su и su-

Разница между » su » и «su —» заключается в том, что переменная PATH, не изменяет значения с помощью команды su. Некоторые команды могут не выполняться, если PATH задан неправильно. Например, рассмотрим следующий сценарий:

[jack@redhat-server ~]$ su root
Password:
[root@redhat-server jack]# fdisk -l
bash: fdisk: command not found
[root@redhat-server jack]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/jack/bin

Вы можете видеть, что каталоги sbin не включены в PATH пользователя root. Таким образом, он не выполняет команду fdisk. Теперь мы попытаемся войти в систему с помощью команды su —:

[jack@redhat-server ~]$ su -
Password:
[root@redhat-server ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1044 8281507+ 8e Linux LVM
[root@redhat-server ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

Еще одно различие между этими двумя командами — сценарии входа в систему. Во-первых, давайте посмотрим на сценарии входа в систему:

Когда пользователь входит в систему, выполняются следующие 4 файла, если учетные данные пользователя являются законными:

/etc/profile
/etc/bashrc
~/.bashrc
~/.bash_profile

Когда вы входите в систему с помощью команды » su —«, все эти сценарии выполняются. А с командой su выполняются только сценарии bashrc. Т. е. выполняются сценарии /etc/bashrc и ~./bashrc.

Команда su — выдаёт Authentication failure в Ubuntu

В ubuntu при запуске команды su может произойти сбой аутентификации. Вы получаете эту ошибку, потому что учетная запись root в ubuntu по умолчанию отключена.

user@host:~$ su
Password:

su: Authentication failure

Вместо того, чтобы использовать su используйте sudo -i или sudo. Либо поставьте пароль на учетную запись root. Так как она по умолчанию без пароля будет заблокированной.

Заключение

В этой статье мы показали разницу между командами “su” и “su -” в Linux. Надеюсь, вам понравилась наша статья и она вам помогла.

Понравилась статья? Поделить с друзьями:
  • Suspension malfunction скания ошибка
  • Su 42118 6 ошибка пс4 решение
  • Suspension faulty ситроен с5 ошибка
  • Su 42118 6 ошибка ps4 решение
  • Suspended cisco как исправить