SSH ഫോർവേഡിംഗ് ലോക്കൽ പോർട്ട് 13306-ൽ ശ്രവിക്കുന്നു, പക്ഷേ mysql ഇപ്പോഴും ലോക്കൽ ഡാറ്റാബേസിലേക്ക് കണക്ട് ചെയ്യുന്നു—അല്ലെങ്കിൽ അതിന്റെ ലോക്കൽ socket ഇല്ലെന്ന് റിപ്പോർട്ട് ചെയ്യുന്നു. Unix-ൽ localhost നൽകിയ MySQL ക്ലയന്റിന് TCP-യ്ക്ക് പകരം Unix socket തിരഞ്ഞെടുക്കാം. പോർട്ട് നൽകുന്നത് ആ തിരഞ്ഞെടുപ്പ് നിർബന്ധമായും മാറ്റണമെന്നില്ല.

നിലവിലുള്ള അംഗീകൃത TCP ഫോർവേഡിനായി പ്രോട്ടോക്കോൾ വ്യക്തമാക്കുക:

mysql --protocol=TCP --host=127.0.0.1 --port=13306 \
  --user=dbuser --password

ഉപയോക്തൃനാമം ഉദാഹരണത്തിനുള്ളതാണ്; പാസ്‌വേഡ് ഒപ്ഷൻ ഇന്ററാക്ടീവ് ഇൻപുട്ട് ആവശ്യപ്പെടുന്നു. കമാൻഡ് Unix socket-ന് പകരം ലോക്കൽ TCP ശ്രോതാവിലേക്ക് കണക്ട് ചെയ്യുന്നു.

രണ്ട് ലോഗിനുകൾ വേർതിരിച്ച് നിർത്തുക

ഒരു നിശ്ചിത SSH റൂട്ടിന് ഈ രൂപം ഉണ്ടാകാം:

ssh -N -L 127.0.0.1:13306:db.internal:3306 [email protected]

ഗേറ്റ്‌വേയുടെ SSH സർവർ db.internal:3306-ൽ എത്തുന്നു. തുടർന്ന് MySQL ആ ബൈറ്റ് സ്ട്രീമിലൂടെ ഡാറ്റാബേസ് അക്കൗണ്ട് പ്രാമാണീകരിക്കുന്നു. സ്വീകരിച്ച SSH കീ ഡാറ്റാബേസ് ലോഗിൻ നൽകുന്നില്ല, ഡാറ്റാബേസിന്റെ സ്രോതസ്സ് നിയന്ത്രണങ്ങൾ കണക്ഷൻ റൂട്ടിന്റെ ആ വശത്തുനിന്ന് വരുന്നതായി കാണുന്നു.

ഇത് ഒരു നിശ്ചിത TCP അഡാപ്റ്ററാണ്, mysql ഉപയോഗിക്കുന്ന SOCKS ക്രമീകരണമല്ല. ഫോർവേഡിംഗ് എൻഡ്‌പോയിന്റിന് മുൻകൂട്ടി നിർവചിച്ച ഒരു ലക്ഷ്യം മാത്രമുള്ളതിനാൽ അപ്ലിക്കേഷന് SOCKS ചർച്ച ആവശ്യമില്ല.

ഉപയോഗിക്കുന്നിടത്ത് ഉദ്ദേശിച്ച ഡാറ്റാബേസ് TLS ഐഡന്റിറ്റിയും സർട്ടിഫിക്കറ്റ് നയവും നിലനിർത്തുക. socket loopback-ലേക്ക് കണക്ട് ചെയ്യുന്നത് ഡാറ്റാബേസ് സർട്ടിഫിക്കറ്റിനെ മറ്റൊരു സേവന നാമത്തിന് സാധുവാക്കുന്നില്ല. വിജയകരമായ ലോക്കൽ TCP കണക്ഷൻ ഗതാഗത തിരഞ്ഞെടുപ്പ് തീരുമാനിക്കുന്നു, പിന്നീടുള്ള ഡാറ്റാബേസ് പ്രാമാണീകരണമോ TLS പരിശോധനകളോ അല്ല.

അനുബന്ധ ലേഖനങ്ങൾ