აიძულეთ MySQL გამოიყენოს გადაცემული TCP პორტი
მოერიდეთ ლოკალური Unix socket-ის არჩევას, როცა MySQL კლიენტი SSH TCP გადაცემით უნდა დაუკავშირდეს.
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 შემოწმებებს.