[LINUX] [Postgresql] SSH-Verbindung zum externen DB-Server vom Client

Installieren Sie postgresql auf einem externen DB-Server Beachten Sie, dass es beim Zugriff auf den DB-Server mit SSH-Verbindung von der Clientseite aus ein wenig passt.

·Umgebung

· Konstruktion

Wir werden in Ordnung durchführen.

Installieren Sie postgreSQL auf dem DB-Server

Installieren Sie postgresql unter Linux und machen Sie es zu einem DB-Server

$ sudo yum install -y postgresql96 postgresql96-server postgresql96-libs postgresql96-contrib

DB-Initialisierung

Ich bin nicht sicher, aber es gibt verschiedene Dateien, also Yoshi!

$ sudo /etc/init.d/postgresql96 initdb

Ändern Sie das Postgre-Benutzerpasswort

Geben Sie ein neues Passwort wie unter Neues Passwort: ein und geben Sie es dann erneut ein. Geben Sie das neue Passwort erneut ein :.

$ sudo passwd postgres
Changing password for user postgres.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Änderungen an postgresql.conf und pg_hba.conf

Nach dem Initialisieren der Datenbank mit initdb im Verzeichnis / var / lib / pgsql96 / data / Da postgresql.conf generiert wurde, bearbeiten Sie es.

$ sudo vi /var/lib/pgsql96/data/postgresql.conf

Gehen Sie nach dem Öffnen in die Nähe der Linie 53 (Geben Sie Folgendes ein: Legen Sie die Nummer fest, um die Zeilennummer anzuzeigen, damit Sie sich diese bequem merken können.)

postgresql.conf


※Auszug
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
#port = 5432                            # (change requires restart)
max_connections = 100                   # (change requires restart)

Kommentieren Sie listen_addresses aus und fügen Sie die globale IP-Adresse des Clients hinzu. Ich kommentiere auch den Hafen aus.

~ Nach dem Bearbeiten ~

postgresql.conf


※Auszug
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = 'localhost,Globale IP-Adresse'  # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
port = 5432                            # (change requires restart)
max_connections = 100                   # (change requires restart)

Es gibt viele Möglichkeiten, eine globale IP nachzuschlagen. Wenn Sie mit einem Client auf www.cman.jp zugreifen, können Sie es sofort sehen, daher wird es empfohlen.  https://www.cman.jp/network/support/go_access.cgi

Als nächstes wird pg_hba.conf im selben Verzeichnis generiert, also bearbeiten Sie es.

$ sudo vi /var/lib/pgsql96/data/pg_hba.conf

Dies ist unten, so dass Sie zum Ende springen können. Ändern Sie wie folgt. (Sie können mit Umschalt + g fliegen)

pg_hba.conf


# 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            trust
Host alle alle globalen IP-Adresse/32   trust

Sie müssen die clientseitige globale IP-Adresse in der Spalte ADRESSE festlegen und METHOD als vertrauenswürdig festlegen. Bitte beachten Sie, dass der Client keine Verbindung zum DB-Server herstellen kann.

starte postgreSQL

$ /etc/init.d/postgresql96 start

Datenbankerstellung

Wenn Sie hier keine Datenbank erstellen Ich habe Probleme beim Herstellen einer Verbindung mit der DB-Verbindungssoftware (diesmal A5M2) auf dem Client. Wechseln Sie zuerst zum Benutzer postgres

$ sudo su - postgres
Last login: Sun Dec 9 14:02:32 UTC 2019 on pts/0
-bash-4.2$

Greifen Sie mit psql auf die Datenbank zu

-bash-4.2$ psql
psql (9.6.11)
Type "help" for help.

postgres=#

Wenn postgres = # angezeigt wird, erstellen Sie buchstäblich eine leere Datenbank.

postgres=# create database hogeDB;

Damit sind die Einstellungen auf der DB-Serverseite abgeschlossen. Als nächstes folgen die clientseitigen Einstellungen (hauptsächlich A5M2).

・ Verbindung

Starten Sie A5M2 Hinzufügen und Entfernen von Datenbanken image.png Hinzufügen → PostgreSQL (direkte Verbindung) image.png Geben Sie für die Einstellungen auf der Registerkarte "Basic" die DB-Einstellungen ein und geben Sie diese ein. image.png Wählen Sie auf der Registerkarte SSH2-Tunnel den Benutzernamen und den privaten Schlüssel aus, die für die SSH-Verbindung erforderlich sind. image.png

Wenn Sie hier eine Testverbindung herstellen und die Meldung "Die Verbindung war erfolgreich" erhalten, sind Sie erfolgreich! image.png

Speichern Sie danach die Einstellungen und kochen Sie sie.

Referenz: Zugriff auf die Datenbank des externen Servers (postgresql) https://liginc.co.jp/programmer/archives/1598

Recommended Posts

[Postgresql] SSH-Verbindung zum externen DB-Server vom Client
Ssh zu einem externen Server unter http Proxy [von Ubuntu 18.04]
POST-Images von ESP32-CAM (MicroPython) an den Server
SSH-Anmeldung am Zielserver von Windows mit einem Klick auf eine Verknüpfung
Installieren und Konfigurieren des PyFilter-Clients zur Überwachung von SSH-Verbindungen zum Alibaba Cloud Ubuntu-Server
Einstellungen zur Angabe der für die SSH-Verbindung zulässigen IP-Adressen
Versuchen Sie, SSH (Exscript) von der Software auf den Router einzustellen
Senden Sie Protokolldaten vom Server an Splunk Cloud
SSH-Verbindung zu einem privaten Server über einen Plattformserver in EC2
Stellen Sie mit ssh-Verbindung vom Mac aus eine Verbindung zu centos6 auf der Virtualbox her
Ich möchte Informationen von fstab am ssh-Verbindungsziel abrufen und den Befehl ausführen
Ein Hinweis zum Überprüfen der Verbindung zum Lizenzserver-Port
Terminalzuordnung von der Serverseite zu Amazon SNS (Python + Boto3)
SSH-Verbindung von Windows zu GCP
Ich möchte DB mit Djangos ORM von einer externen Anwendung aus betreiben
Versuchen Sie es mit Pythons Webframework Django (1) - Von der Installation bis zum Serverstart
Bearbeiten Sie die Datei des SSH-Verbindungszielservers auf dem Server mit VS-Code
[Python] Senden Sie das von der Webkamera aufgenommene Bild an den Server und speichern Sie es
Die Geschichte des Versuchs, den Client wieder zu verbinden
Push-Benachrichtigung vom Python-Server an Android
So bedienen Sie Linux von der Konsole aus
So greifen Sie von außen auf den Datenspeicher zu
SSH-Verbindung von Windows über SSL VPN
[IBM Cloud] Ich habe versucht, über Cloud Funtions (Python) auf die Tabelle Db2 on Cloud zuzugreifen.