Предположим, вы видите это сообщение:
FATAL: ошибка аутентификации идентификационной информации для пользователя "..."
Каковы причины этого сообщения об ошибке?
Это означает, что Postgres пытается аутентифицировать пользователя, используя протокол Ident, и не может. Идентификационная аутентификация работает следующим образом:
- У вас есть роль базы данных ‘foo’ в базе данных ‘db’.
- Ваш
pg_hba.conf
файл (в/etc/postgres-something/main
) определяет Ident как протокол для подключения к базе данныхdb
для пользователей, подключающихся из определенные хосты - Имя пользователя unix, устанавливающее соединение, — ‘foo’
- Сервер идентификации, запущенный на машине, с которой подключается пользователь, подтверждает, что его имя пользователя действительно ‘foo ‘
Возможные причины и решения:
- На сервере не запущен сервер идентификации . машина, с которой вы пытаетесь подключиться. Проверьте это, попытавшись подключиться к нему через порт 113. Если это не удается, установите сервер идентификации (например,
sudo apt-get install oidentd
). -
Идентификационный сервер есть, но нет роли базы данных , соответствующей имени, с которым вы пытаетесь подключиться (‘foo’ в приведенном выше примере). Поэтому создайте его, подключившись как-нибудь к базе данных с правами суперпользователя, и выполните
CREATE ROLE foo
. В качестве альтернативы добавьте запись в/etc/postgresql/.../main/pg_ident.conf
(или/var/lib/pgsql/12/data
или где угодно). -
Возможно, имя пользователя оболочки не соответствует роли базы данных. Вы можете проверить это, подключившись к серверу Ident во время соединения и передав правильные номера портов.
-
Может быть, вы действительно хотите подключиться по паролю , а не по идентификатору. Отредактируйте файл
pg_hba.conf
соответствующим образом. Например, измените:host all all 127.0.0.1/32 identity
на
разместить все 127.0.0.1/32 md5
Не уверен в причинах, но это устранило это для меня:
в pg_hba.conf
измените на это:
разместить все все 127.0.0.1/32 md5
Точная ошибка: Вызвано : org.postgresql.util.PSQLException: FATAL: Ошибка аутентификации идентификатора для пользователя "postgres"
1
В CentOS добавьте следующую строку в /var/lib/pgsql/9.3/data/pg_hba.conf
:
разместить все 127.0.0.1/32 trust
И закомментировать другие записи.
Конечно, этот параметр небезопасно , но если вы просто возитесь с виртуальной машиной разработки, как я, то, вероятно, все в порядке …
0
Если вы еще не пробовали это, просмотрите свой pg_hba. conf файл. Он будет называться примерно так/var/lib/pgsql/9.3/data/pg_hba.conf (Fedora 20); возможно, вам придется использовать ‘find/-name pg_hba.conf’, чтобы найти его.
В нижней части файла измените значения ‘METHOD’ на ‘trust’ для локального тестирования (см. postgres документы для полной информации). Перезагрузите компьютер, чтобы убедиться, что все запущено и новые параметры прочитаны.
Надеюсь, это излечит ваши беды. Он решил мои проблемы в Fedora 20 с PostgreSQL 9.3.
1
Для Centos 7, измените pg_hba.conf на ниже:
# ТИП СПОСОБА АДРЕСА ПОЛЬЗОВАТЕЛЯ БАЗЫ ДАННЫХ # "local" - только для соединений сокетов домена Unix все все одноранговые узлы # Локальные подключения IPv4: # хост все все 127.0.0.1/32 identityhost все все 127.0.0.1/32 md5 # локальные подключения IPv6: # хост все все :: 1/128 identityhost все все :: 1/128 trust # Разрешить репликационные соединения с локального хоста пользователем с # привилегией репликации. # Локальная репликация все одноранговые # репликация хоста все 127.0.0.1/32 ident # репликация хоста все :: 1/128 identity
1
Ошибка GitHub: ошибка аутентификации из командной строки

Джинни Фас
16 апреля 2018 г. · чтение 2 мин.
После настройки двухфакторной аутентификации на GitHub я больше не мог отправлять удаленные репозитории из командной строки.
Когда я пытался отправить удаленное репо, командная строка выдавала следующую ошибку:
~:> git push origin my-branch
Имя пользователя для 'https://github.com': myusernamePassword для 'https://myusername@github.com': mypasswordremote: Неверное имя пользователя или пароль.fatal: Ошибка аутентификации для https://github.com/my-repository
Ошибка поставила меня в тупик и заставила меня поклясться, что, когда я в конечном итоге доберусь до сути, я делаю все возможное, чтобы оплатить знания.
Для аутентификации в командной строке требуется личный токен доступа.
Перейдите к Set элементы:

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


Создайте новый токен персонального доступа. Убедитесь, что вы скопировали персональный доступ Токен, как только он будет сгенерирован — вы больше не сможете его увидеть!


Вставьте токен персонального доступа в «Пароль» поле при аутентификации через командную строку.