Heim > Datenbank > MySQL-Tutorial > Wie kann ich über einen SSH-Tunnel in PHP eine sichere Verbindung zu einem Remote-MySQL-Server herstellen?

Wie kann ich über einen SSH-Tunnel in PHP eine sichere Verbindung zu einem Remote-MySQL-Server herstellen?

Patricia Arquette
Freigeben: 2024-11-29 03:33:14
Original
309 Leute haben es durchsucht

How to Securely Connect to a Remote MySQL Server via SSH Tunnel in PHP?

Sichere Verbindung zu einem MySQL-Server über SSH mit PHP

Die Verbindung zu einem Remote-MySQL-Server über SSH bietet zusätzliche Sicherheit durch die Verschlüsselung der Verbindung. In PHP ermöglicht die Funktion mysqli_connect() die Verbindung zu SSH-getunnelten MySQL-Servern. Beim Versuch, eine Verbindung mit ssh2_tunnel() herzustellen, stoßen Entwickler jedoch häufig auf den Fehler „mysqli_connect() erwartet, dass Parameter 6 ein String ist, Ressource angegeben.“

SSH-Tunnelkonfiguration

Der empfohlene Ansatz zur Lösung dieses Problems besteht darin, einen SSH-Tunnel einzurichten. Befolgen Sie diese Schritte, um mit Befehlszeilentools einen SSH-Tunnel zu erstellen:

  1. Öffnen Sie den SSH-Client:Öffnen Sie Ihren bevorzugten SSH-Client (z. B. PuTTY) und stellen Sie eine Verbindung zu Ihrer Fernbedienung her Linux-Maschine.
  2. Erstellen Sie den SSH-Tunnel: Geben Sie den folgenden Befehl ein, um einen Tunnel von Ihrem lokalen Workstation-Port aus zu erstellen (z. B. 3307) an die Remote-IP-Adresse und den Port des MySQL-Servers (z. B. 10.3.1.55:3306):
ssh -fNg -L 3307:10.3.1.55:3306 username@ssh-jumpbox.com
Nach dem Login kopieren
  1. Konfigurieren Sie den SSH-Server: Konfigurieren Sie bei Bedarf den SSH-Server so, dass er die Weiterleitung lokaler Ports zulässt, indem Sie die Datei /etc/ssh/sshd_config bearbeiten Datei und fügen Sie die folgende Zeile hinzu:
AllowTcpForwarding yes
Nach dem Login kopieren
  1. Starten Sie den SSH-Server neu: Starten Sie den SSH-Server neu, um die Änderungen zu übernehmen:
sudo systemctl restart sshd
Nach dem Login kopieren

PHP-Verbindung

Sobald der SSH-Tunnel eingerichtet ist, können Sie Stellen Sie mit PHP eine Verbindung zum MySQL-Server her:

$mysqli = new mysqli('127.0.0.1', 'DB_USERNAME', 'DB_PASSWORD', 'dbname', 3307);

if ($mysqli->connect_error) {
  die('Connect Error (' . $mysqli->connect_errno . ') '
      . $mysqli->connect_error);
}
Nach dem Login kopieren

Dieser Code stellt eine Verbindung zur MySQL-Datenbank her, die unter 127.0.0.1:3307 gehostet wird, und zwar unter Verwendung des angegebenen Datenbank-Benutzernamens, Passworts, Datenbanknamens und der für die konfigurierten Portnummer SSH-Tunnel.

Das obige ist der detaillierte Inhalt vonWie kann ich über einen SSH-Tunnel in PHP eine sichere Verbindung zu einem Remote-MySQL-Server herstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage