Κάντε το MySQL να χρησιμοποιεί τη προωθημένη θύρα TCP
Αποφύγετε την επιλογή τοπικού Unix socket όταν ένας πελάτης MySQL πρέπει να συνδεθεί μέσω προώθησης SSH TCP.
Η προώθηση SSH ακούει στην τοπική θύρα 13306, αλλά το mysql εξακολουθεί να συνδέεται με την τοπική βάση δεδομένων—ή αναφέρει ότι λείπει το τοπικό του socket. Στο Unix, ένας πελάτης MySQL στον οποίο δίνεται localhost μπορεί να επιλέξει Unix socket αντί για TCP. Η παροχή θύρας δεν αλλάζει απαραίτητα αυτή την επιλογή.
Για μια υπάρχουσα εγκεκριμένη προώθηση TCP, κάντε το πρωτόκολλο ρητό:
mysql --protocol=TCP --host=127.0.0.1 --port=13306 \
--user=dbuser --password
Το όνομα χρήστη είναι ενδεικτικό· η επιλογή κωδικού ζητά διαδραστική εισαγωγή. Η εντολή συνδέεται με τον τοπικό ακροατή TCP αντί για Unix socket.
Κρατήστε τις δύο συνδέσεις χωριστά
Μια σταθερή διαδρομή SSH μπορεί να έχει αυτή τη μορφή:
ssh -N -L 127.0.0.1:13306:db.internal:3306 [email protected]
Ο διακομιστής SSH της πύλης φτάνει στο db.internal:3306. Στη συνέχεια το MySQL επαληθεύει τον λογαριασμό της βάσης δεδομένων μέσω αυτής της ροής byte. Ένα αποδεκτό κλειδί SSH δεν παρέχει σύνδεση στη βάση δεδομένων, και οι περιορισμοί προέλευσης της βάσης δεδομένων βλέπουν τη σύνδεση να φτάνει από εκείνη την πλευρά της διαδρομής.
Πρόκειται για σταθερό προσαρμογέα TCP, όχι ρύθμιση SOCKS που καταναλώνει το mysql. Η εφαρμογή δεν χρειάζεται διαπραγμάτευση SOCKS επειδή το τελικό σημείο της προώθησης έχει έναν προκαθορισμένο στόχο.
Διατηρήστε την προβλεπόμενη ταυτότητα TLS της βάσης δεδομένων και την πολιτική πιστοποιητικών όπου χρησιμοποιούνται. Η σύνδεση του socket με το loopback δεν καθιστά ένα πιστοποιητικό βάσης δεδομένων έγκυρο για διαφορετικό όνομα υπηρεσίας. Μια επιτυχημένη τοπική σύνδεση TCP καθορίζει την επιλογή μεταφοράς, όχι την μεταγενέστερη επαλήθευση της βάσης δεδομένων ή τους ελέγχους TLS.