SSH 터널링을 사용한 PostgreSQL / psycopg2 비밀번호 인증

군나르 순드 버그

ssh 터널을 통해 PostgreSQL 데이터베이스에 연결하려고합니다. 포트 3333에서 수신 대기하고 데이터베이스가있는 시스템의 포트 5432로 전달하도록 설정되어 있습니다. psql터널을 통해 암호 인증으로 명령 을 사용하여 연결할 수 있지만 어떤 이유로 psycopg2터널 통해 연결을 시도 하면 오류가 발생 FATAL: password authentication failed for user database_user합니다. 사용자 이름과 암호를 따옴표로 묶어 보았습니다.

성공적인 psql명령 :

psql -h localhost -p 3333 -U database_name database_user 
#This command brings up password prompt

실패한 pscyopg2명령 :

psycopg2.connect("dbname='database_name' user='database_user' host='localhost' password='database_password' port=3333")

산출:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/database_user/.local/share/virtualenvs/project-QNhT-Vzg/lib/python3.7/site-packages/psycopg2/__init__.py", line 126, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATAL:  password authentication failed for user "database_user"
FATAL:  password authentication failed for user "database_user"

다음은 pg_hba.conf참조 용 으로 내 일부입니다 .

# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5
놀람

연결 문제를 디버깅 할 때 서비스에 도달하기 전에 어떤 계층을 거쳐야하는지 항상 기억하는 것이 좋습니다. PostgreSQL 서비스를 연결할 때 최소한 3 개의 계층이 있습니다.

  • 네트워킹 : 방화벽, NAT, 포트 포워딩
  • PostgreSQL ACL
  • PostgreSQL 로그인

문제를 일으키는 계층을 이해하는 것이 중요합니다. PostgreSQL 클라이언트 (시나리오에서 psycopg2로 래핑 됨) 오류는 임시 오류 메시지를 발행하여이 문제를 해결하는 데 도움이됩니다.

  • 네트워크 문제는 일반적으로 일반적으로 발생합니다. Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?즉, PostgreSQL 서비스 연결에 전혀 성공하지 못했고 서비스 이전에 문제가 발생합니다.
  • ACL 문제는 일반적으로 일반적으로 발생합니다. No pg_hba.conf entry for host <hostname>, user <username>, database <database>즉, PostgreSQL 서비스에 연결했지만 연결이 ACL에서 유효한 것으로 참조되지 않음을 의미합니다.
  • 로그인 문제는 일반적으로 발생한 오류를 발생시킵니다. password authentication failed for user "<user>"즉, PostgreSQL 서비스에 연결했고 연결이 ACL 항목을 따르지만 인증에 실패했음을 의미합니다.

이후 시나리오에서는 인증 모드를 정의하므로 트리거 된 항목을 아는 것이 중요합니다. 귀하의 경우에는 md5항목 이었습니다 ( peer모드 에는 비밀번호가 없으며 SSH 터널이 localhost를 매핑해야하므로 postgreSQL 관점 host대신에 표시됩니다 local) :

host    all             all             127.0.0.1/32            md5

분명히 귀하의 암호는 예상 한 것과 다릅니다. 이를 해결하려면 다음을 확인하십시오.

  • postgreSQL 사용자에 대한 암호를 설정하고 로그인 권한을 확인했습니다 (유닉스 / SSH 사용자가 아니라 다른 개념이 있습니다).
  • psycopg2연결에 동일한 암호를 사용하면 연결할 수 있어야합니다.

댓글을 읽으면 '비밀번호에도 따옴표 가있는 것 같습니다 . 따라서 연결의 암호는 다음과 같을 수 있습니다.

psycopg2.connect("dbname='database_name' user='database_user' host='localhost' password="'database_password'" port=3333")

또는 따옴표가 필요한 경우 이스케이프해야하는 특수 문자를 사용했음을 나타낼 수 있습니다. 더 간단한 암호를 사용하여 디버그 한 다음 더 강력한 암호로 대체 할 수도 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

사용자와 비밀번호가 정확하더라도 Postgresql / psycopg2 비밀번호 인증 오류

분류에서Dev

SSH 리버스 터널-키 인증 사용시 비밀번호 요청 비활성화

분류에서Dev

MERN 스택을 사용한 비밀번호 재설정 인증

분류에서Dev

LDAP 인증을위한 사용자 이름 및 비밀번호

분류에서Dev

Jenkins와 비밀번호 및 인증서를 사용한 SSH 연결

분류에서Dev

git-shell에서 SSH 비밀번호 인증을 사용할 수 있습니까?

분류에서Dev

SSH 키와 비밀번호를 사용한 원격 로그인. 이상한 오류 : 디렉터리입니다

분류에서Dev

SSH에 대한 공개 키 인증을 설정 한 후 사용자의 비밀번호를 삭제해야합니까?

분류에서Dev

netcat, ssh 또는 telnet을 사용하여 Linux 비밀번호 로그인 우회

분류에서Dev

특정 인터페이스에서 SSH 비밀번호 인증 비활성화

분류에서Dev

WSSE 인증을위한 암호화 된 비밀번호 생성

분류에서Dev

Firebase / Swift 2-인증 된 사용자 비밀번호 및 이메일을받는 방법

분류에서Dev

org.postgresql.util.PSQLException 수정 방법 : 치명적 : 사용자에 대한 비밀번호 인증 실패

분류에서Dev

org.postgresql.util.PSQLException 수정 방법 : 치명적 : 사용자에 대한 비밀번호 인증 실패

분류에서Dev

비밀번호 인증이 필요한 http 데이터 요청

분류에서Dev

비밀번호없이 SSH를 사용하여 로그인

분류에서Dev

/ etc / ssh / sshd_config에 "PasswordAuthentication no"가 있더라도 SFTP로 비밀번호 인증을 사용할 수 있습니다.

분류에서Dev

비밀번호 1 줄을 사용하는 OSX의 SSH

분류에서Dev

Mac의 Filezilla : 비밀번호없는 인증을 사용하는 SFTP?

분류에서Dev

Mac의 Filezilla : 비밀번호없는 인증을 사용하는 SFTP?

분류에서Dev

암호화 된 비밀번호에 대한 인증 사용

분류에서Dev

OpenVPN-비밀번호 인증 전용

분류에서Dev

특정 IP 주소에서만 SSH 비밀번호 인증을 허용하려면 어떻게해야합니까?

분류에서Dev

사용자 "postgres"에 대한 Docker 비밀번호 인증 실패

분류에서Dev

암호를 사용한 PostgreSQL 인증

분류에서Dev

Java 정규식을 사용한 비밀번호 유효성 검증에 실패

분류에서Dev

SSH를 사용할 때 사용자의 홈 디렉토리에 인증서가있는 경우에만 비밀번호 인증을 방지 할 수 있습니까?

분류에서Dev

스프링 보안 인증 로그인에서 사용자가 입력 한 사용자 이름 및 비밀번호 값을 가져 오는 방법

분류에서Dev

스프링 보안 인증 로그인에서 사용자가 입력 한 사용자 이름 및 비밀번호 값을 가져 오는 방법

Related 관련 기사

  1. 1

    사용자와 비밀번호가 정확하더라도 Postgresql / psycopg2 비밀번호 인증 오류

  2. 2

    SSH 리버스 터널-키 인증 사용시 비밀번호 요청 비활성화

  3. 3

    MERN 스택을 사용한 비밀번호 재설정 인증

  4. 4

    LDAP 인증을위한 사용자 이름 및 비밀번호

  5. 5

    Jenkins와 비밀번호 및 인증서를 사용한 SSH 연결

  6. 6

    git-shell에서 SSH 비밀번호 인증을 사용할 수 있습니까?

  7. 7

    SSH 키와 비밀번호를 사용한 원격 로그인. 이상한 오류 : 디렉터리입니다

  8. 8

    SSH에 대한 공개 키 인증을 설정 한 후 사용자의 비밀번호를 삭제해야합니까?

  9. 9

    netcat, ssh 또는 telnet을 사용하여 Linux 비밀번호 로그인 우회

  10. 10

    특정 인터페이스에서 SSH 비밀번호 인증 비활성화

  11. 11

    WSSE 인증을위한 암호화 된 비밀번호 생성

  12. 12

    Firebase / Swift 2-인증 된 사용자 비밀번호 및 이메일을받는 방법

  13. 13

    org.postgresql.util.PSQLException 수정 방법 : 치명적 : 사용자에 대한 비밀번호 인증 실패

  14. 14

    org.postgresql.util.PSQLException 수정 방법 : 치명적 : 사용자에 대한 비밀번호 인증 실패

  15. 15

    비밀번호 인증이 필요한 http 데이터 요청

  16. 16

    비밀번호없이 SSH를 사용하여 로그인

  17. 17

    / etc / ssh / sshd_config에 "PasswordAuthentication no"가 있더라도 SFTP로 비밀번호 인증을 사용할 수 있습니다.

  18. 18

    비밀번호 1 줄을 사용하는 OSX의 SSH

  19. 19

    Mac의 Filezilla : 비밀번호없는 인증을 사용하는 SFTP?

  20. 20

    Mac의 Filezilla : 비밀번호없는 인증을 사용하는 SFTP?

  21. 21

    암호화 된 비밀번호에 대한 인증 사용

  22. 22

    OpenVPN-비밀번호 인증 전용

  23. 23

    특정 IP 주소에서만 SSH 비밀번호 인증을 허용하려면 어떻게해야합니까?

  24. 24

    사용자 "postgres"에 대한 Docker 비밀번호 인증 실패

  25. 25

    암호를 사용한 PostgreSQL 인증

  26. 26

    Java 정규식을 사용한 비밀번호 유효성 검증에 실패

  27. 27

    SSH를 사용할 때 사용자의 홈 디렉토리에 인증서가있는 경우에만 비밀번호 인증을 방지 할 수 있습니까?

  28. 28

    스프링 보안 인증 로그인에서 사용자가 입력 한 사용자 이름 및 비밀번호 값을 가져 오는 방법

  29. 29

    스프링 보안 인증 로그인에서 사용자가 입력 한 사용자 이름 및 비밀번호 값을 가져 오는 방법

뜨겁다태그

보관