SSH გადაცემა ლოკალურ პორტ 13306-ზე უსმენს, მაგრამ mysql მაინც უკავშირდება ლოკალურ ბაზას—ან აცხადებს, რომ მისი ლოკალური socket აკლია. Unix-ზე localhost-მიცემულ MySQL კლიენტს შეუძლია TCP-ის ნაცვლად Unix socket აირჩიოს. პორტის მიცემა აუცილებლად არ ცვლის ამ არჩევანს.

არსებული დამტკიცებული 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 ამოწმებს ბაზის ანგარიშს ამ ბაიტური ნაკადით. მიღებული SSH გასაღები ბაზაში შესვლას არ იძლევა, და ბაზის წყაროს შეზღუდვები ხედავენ, რომ კავშირი მარშრუტის იმ მხრიდან მოდის.

ეს ფიქსირებული TCP ადაპტერია და არა SOCKS პარამეტრი, რომელსაც mysql მოიხმარს. აპლიკაციას SOCKS მოლაპარაკება არ სჭირდება, რადგან გადაცემის ბოლო წერტილს ერთი წინასწარ განსაზღვრული სამიზნე აქვს.

შეინარჩუნეთ ბაზის განზრახული TLS იდენტობა და სერტიფიკატის პოლიტიკა იქ, სადაც ისინი გამოიყენება. socket-ის loopback-თან დაკავშირება ბაზის სერტიფიკატს სხვა სერვისის სახელისთვის ნამდვილს არ ხდის. წარმატებული ლოკალური TCP კავშირი წყვეტს ტრანსპორტის არჩევანს, და არა შემდგომ ბაზის ავთენტიფიკაციას ან TLS შემოწმებებს.

დაკავშირებული სტატიები