വിദൂര ആക്uസസ് ലളിതമാക്കാൻ കസ്റ്റം SSH കണക്ഷനുകൾ എങ്ങനെ കോൺഫിഗർ ചെയ്യാം


SSH (SSH ക്ലയന്റ്) ഒരു മെഷീൻ വിദൂരമായി ആക്സസ് ചെയ്യുന്നതിനുള്ള ഒരു പ്രോഗ്രാമാണ്, ഇത് ഒരു റിമോട്ട് ഹോസ്റ്റിൽ കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കാൻ ഉപയോക്താവിനെ പ്രാപ്തമാക്കുന്നു. സുരക്ഷിതമല്ലാത്ത ഒരു നെറ്റ്uവർക്കിലൂടെ വിശ്വസനീയമല്ലാത്ത രണ്ട് ഹോസ്റ്റുകൾക്കിടയിൽ സുരക്ഷിതമായ എൻക്രിപ്റ്റ് ചെയ്uത ആശയവിനിമയങ്ങൾ നൽകുന്നതിന് രൂപകൽപ്പന ചെയ്uതിരിക്കുന്നതിനാൽ, ഒരു റിമോട്ട് ഹോസ്റ്റിലേക്ക് ലോഗിൻ ചെയ്യുന്നതിനുള്ള ഏറ്റവും ശുപാർശ ചെയ്യപ്പെടുന്ന രീതിയാണിത്.

SSH ഒരു സിസ്റ്റം-വൈഡ് കൂടാതെ ഒരു ഉപയോക്തൃ-നിർദ്ദിഷ്ട (ഇഷ്uടാനുസൃത) കോൺഫിഗറേഷൻ ഫയലും ഉപയോഗിക്കുന്നു. ഈ ട്യൂട്ടോറിയലിൽ, ഒരു ഇഷ്uടാനുസൃത ssh കോൺഫിഗറേഷൻ ഫയൽ എങ്ങനെ സൃഷ്ടിക്കാമെന്നും റിമോട്ട് ഹോസ്റ്റുകളിലേക്ക് കണക്റ്റുചെയ്യുന്നതിന് ചില ഓപ്ഷനുകൾ ഉപയോഗിക്കാമെന്നും ഞങ്ങൾ വിശദീകരിക്കും.

  1. നിങ്ങളുടെ Linux ഡെസ്ക്ടോപ്പിൽ OpenSSH ക്ലയന്റ് ഇൻസ്റ്റാൾ ചെയ്തിരിക്കണം.
  2. ssh വഴിയുള്ള റിമോട്ട് കണക്ഷനുകൾക്കായി ഉപയോഗിക്കുന്ന പൊതുവായ ഓപ്ഷനുകൾ മനസ്സിലാക്കുക.

ssh ക്ലയന്റ് കോൺഫിഗറേഷൻ ഫയലുകളുടെ സ്ഥാനങ്ങൾ ചുവടെ:

  1. /etc/ssh/ssh_config – ഇതാണ് ഡിഫോൾട്ട്, സിസ്റ്റം-വൈഡ് കോൺഫിഗറേഷൻ ഫയൽ. ssh ക്ലയന്റ് മെഷീന്റെ എല്ലാ ഉപയോക്താക്കൾക്കും ബാധകമായ ക്രമീകരണങ്ങൾ ഇതിൽ അടങ്ങിയിരിക്കുന്നു.
  2. ~/.ssh/config അല്ലെങ്കിൽ $HOME/.ssh/config – ഉപയോക്തൃ-നിർദ്ദിഷ്ട/ഇഷ്uടാനുസൃത കോൺഫിഗറേഷൻ ഫയലാണ്. ഒരു നിർദ്ദിഷ്ട ഉപയോക്താവിന് ബാധകമായ കോൺഫിഗറേഷനുകൾ ഇതിന് ഉണ്ട്. അതിനാൽ ഇത് സിസ്റ്റം-വൈഡ് കോൺഫിഗറേഷൻ ഫയലിലെ ഡിഫോൾട്ട് ക്രമീകരണങ്ങളെ അസാധുവാക്കുന്നു. ഞങ്ങൾ സൃഷ്uടിക്കുകയും ഉപയോഗിക്കുകയും ചെയ്യുന്ന ഫയലാണിത്.

സ്ഥിരസ്ഥിതിയായി, ഉപയോക്താക്കൾ പാസ്uവേഡുകൾ ഉപയോഗിച്ച് ssh-ൽ പ്രാമാണീകരിക്കുന്നു, എന്നിരുന്നാലും, 5 ലളിതമായ ഘട്ടങ്ങളിലൂടെ നിങ്ങൾക്ക് ssh കീജെൻ ഉപയോഗിച്ച് ssh പാസ്uവേഡ് ഇല്ലാത്ത ലോഗിൻ സജ്ജീകരിക്കാൻ കഴിയും.

ശ്രദ്ധിക്കുക: നിങ്ങളുടെ ഡെസ്uക്uടോപ്പ് സിസ്റ്റത്തിൽ ~/.ssh എന്ന ഡയറക്uടറി നിലവിലില്ലെങ്കിൽ, ഇനിപ്പറയുന്ന അനുമതികളോടെ അത് സൃഷ്uടിക്കുക.

$ mkdir -p ~/.ssh
$ chmod 0700 ~/.ssh   

മുകളിലെ chmod കമാൻഡ് സൂചിപ്പിക്കുന്നത്, ഉപയോക്താവിന് മാത്രമേ ssh ക്രമീകരണങ്ങൾക്കനുസരിച്ച് ഡയറക്uടറിയിൽ അനുമതികൾ വായിക്കാനും എഴുതാനും നടപ്പിലാക്കാനും കഴിയൂ എന്നാണ്.

ഉപയോക്തൃ നിർദ്ദിഷ്ട SSH കോൺഫിഗറേഷൻ ഫയൽ എങ്ങനെ സൃഷ്ടിക്കാം

ഈ ഫയൽ സാധാരണയായി ഡിഫോൾട്ടായി സൃഷ്uടിക്കപ്പെടുന്നതല്ല, അതിനാൽ ഉപയോക്താവിന് മാത്രമായി റീഡ്/റൈറ്റ് അനുമതികൾ ഉപയോഗിച്ച് നിങ്ങൾ ഇത് സൃഷ്uടിക്കേണ്ടതുണ്ട്.

$ touch ~/.ssh/config
$ chmod 0700 ~/.ssh/config

മുകളിലുള്ള ഫയലിൽ ഹോസ്റ്റ് സ്uപെസിഫിക്കേഷനുകൾ നിർവചിച്ച വിഭാഗങ്ങൾ അടങ്ങിയിരിക്കുന്നു, കൂടാതെ സ്uപെസിഫിക്കേഷനിൽ സജ്ജീകരിച്ചിരിക്കുന്ന പാറ്റേണുകളിൽ ഒന്നുമായി പൊരുത്തപ്പെടുന്ന ഹോസ്റ്റുകൾക്ക് മാത്രമേ ഒരു വിഭാഗം ബാധകമാകൂ.

~/.ssh/config എന്നതിന്റെ പരമ്പരാഗത ഫോർമാറ്റ് ഇപ്രകാരമാണ്, കൂടാതെ എല്ലാ ശൂന്യമായ വരികളും ‘#’ ൽ ആരംഭിക്കുന്ന വരികളും കമന്റുകളായി കണക്കാക്കുന്നു:

Host    host1
	ssh_option1=value1
	ssh_option2=value1 value2
	ssh_option3=value1 

Host    host2
	ssh_option1=value1
	ssh_option2=value1 value2

Host  *
	ssh_option1=value1
	ssh_option2=value1 value2

മുകളിലുള്ള ഫോർമാറ്റിൽ നിന്ന്:

  1. ഹോസ്റ്റ് ഹോസ്റ്റ്1 - ഹോസ്റ്റ് 1-നുള്ള ഒരു ഹെഡർ ഡെഫനിഷൻ ആണ്, ഇവിടെയാണ് ഒരു ഹോസ്റ്റ് സ്uപെസിഫിക്കേഷൻ ആരംഭിക്കുന്നത്, അടുത്ത ഹെഡർ ഡെഫനിഷൻ, ഹോസ്റ്റ് ഹോസ്റ്റ്2 ഒരു സെക്ഷൻ ഉണ്ടാക്കുന്നതിലൂടെ അവസാനിക്കുന്നു.
  2. ഹോസ്റ്റ്1, ഹോസ്റ്റ്2 എന്നത് കമാൻഡ് ലൈനിൽ ഉപയോഗിക്കാനുള്ള ഹോസ്റ്റ് അപരനാമങ്ങളാണ്, അവ റിമോട്ട് ഹോസ്റ്റുകളുടെ യഥാർത്ഥ ഹോസ്റ്റ്നാമങ്ങളല്ല.
  3. ssh_option1=value1, ssh_option2=value1 value2 പോലുള്ള കോൺഫിഗറേഷൻ ഓപ്uഷനുകൾ ഒരു പൊരുത്തമുള്ള ഹോസ്റ്റിന് ബാധകമാണ്, അവ നന്നായി ചിട്ടപ്പെടുത്തിയ ഫോർമാറ്റിംഗിനായി ഇൻഡന്റ് ചെയ്യണം.
  4. ssh_option2=value1 value2 പോലുള്ള ഒരു ഓപ്uഷനിൽ, മൂല്യം1 ആദ്യം പരിഗണിക്കും, തുടർന്ന് മൂല്യം2.
  5. ഹെഡർ ഡെഫനിഷൻ ഹോസ്റ്റ് * (ഇവിടെ * ഒരു പാറ്റേൺ ആണ് - പൂജ്യമോ അതിലധികമോ പ്രതീകങ്ങളുമായി പൊരുത്തപ്പെടുന്ന വൈൽഡ്കാർഡ്) പൂജ്യമോ അതിലധികമോ ഹോസ്റ്റുകളുമായി പൊരുത്തപ്പെടും.

മുകളിലുള്ള ഫോർമാറ്റ് പരിഗണിക്കുമ്പോൾ, ssh കോൺഫിഗറേഷൻ ഫയൽ വായിക്കുന്നത് ഇങ്ങനെയാണ്. ഹോസ്റ്റ്1 ലേക്ക് വിദൂരമായി ആക്സസ് ചെയ്യാൻ നിങ്ങൾ ഒരു ssh കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുകയാണെങ്കിൽ:

$ ssh host1

മുകളിലുള്ള ssh കമാൻഡ് ഇനിപ്പറയുന്ന കാര്യങ്ങൾ ചെയ്യും:

  1. കോൺഫിഗ് ഫയലിലെ ഹോസ്റ്റ് അപരനാമം ഹോസ്റ്റ്1 മായി പൊരുത്തപ്പെടുത്തുക, കൂടാതെ ഹോസ്റ്റ് ഹോസ്റ്റ്1 എന്ന ഡെഫനിഷൻ ഹെഡറിന് കീഴിൽ സജ്ജീകരിച്ച ഓപ്ഷനുകൾ പ്രയോഗിക്കുക.
  2. പിന്നെ അടുത്ത ഹോസ്റ്റ് വിഭാഗമായ Host host2-ലേക്ക് നീങ്ങുകയും കമാൻഡ് ലൈനിൽ നൽകിയിരിക്കുന്ന പേര് പൊരുത്തപ്പെടുന്നില്ലെന്ന് കണ്ടെത്തുകയും ചെയ്യുന്നു, അതിനാൽ ഇവിടെ നിന്ന് ഓപ്ഷനുകളൊന്നും ഉപയോഗിക്കുന്നില്ല.
  3. ഇത് എല്ലാ ഹോസ്റ്റുകളുമായും പൊരുത്തപ്പെടുന്ന അവസാന വിഭാഗമായ ഹോസ്റ്റ് * ലേക്ക് പോകുന്നു. ഇവിടെ, ഇത് ഈ വിഭാഗത്തിലെ എല്ലാ ഓപ്ഷനുകളും ഹോസ്റ്റ് കണക്ഷനിലേക്ക് പ്രയോഗിക്കുന്നു. എന്നാൽ മുമ്പത്തെ വിഭാഗത്തിൽ (കളിൽ) ഉപയോഗിച്ചിട്ടുള്ള ഓപ്ഷനുകളുടെ ഒരു മൂല്യവും ഇതിന് അസാധുവാക്കാൻ കഴിയില്ല.
  4. ഹോസ്റ്റ്2 നും ഇത് ബാധകമാണ്.

ഉപയോക്തൃ നിർദ്ദിഷ്ട SSH കോൺഫിഗറേഷൻ ഫയൽ എങ്ങനെ ഉപയോഗിക്കാം

ssh ക്ലയന്റ് കോൺഫിഗറേഷൻ ഫയൽ എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് നിങ്ങൾ മനസ്സിലാക്കിക്കഴിഞ്ഞാൽ, നിങ്ങൾക്ക് അത് ഇനിപ്പറയുന്ന രീതിയിൽ സൃഷ്ടിക്കാൻ കഴിയും. നിങ്ങളുടെ സെർവർ പരിതസ്ഥിതിക്ക് ബാധകമായ ഓപ്uഷനുകളും മൂല്യങ്ങളും (ഹോസ്റ്റ് അപരനാമങ്ങൾ, പോർട്ട് നമ്പറുകൾ, ഉപയോക്തൃനാമങ്ങൾ മുതലായവ) ഉപയോഗിക്കാൻ ഓർമ്മിക്കുക.

നിങ്ങളുടെ പ്രിയപ്പെട്ട എഡിറ്റർ ഉപയോഗിച്ച് കോൺഫിഗറേഷൻ ഫയൽ തുറക്കുക:

$ vi ~/.ssh/config

ആവശ്യമായ വിഭാഗങ്ങൾ നിർവചിക്കുക:

Host fedora25
        HostName 192.168.56.15
        Port 22
        ForwardX11 no

Host centos7
        HostName 192.168.56.10
        Port 22
        ForwardX11 no

Host ubuntu
        HostName 192.168.56.5
        Port 2222
        ForwardX11 yes

Host *
        User tecmint
        IdentityFile ~/.ssh/id_rsa
        Protocol 2
        Compression yes
        ServerAliveInterval 60
        ServerAliveCountMax 20
        LogLevel INFO

മുകളിലുള്ള ssh കോൺഫിഗറേഷൻ ഓപ്ഷനുകളുടെ വിശദമായ വിശദീകരണം.

  1. HostName - ലോഗിൻ ചെയ്യുന്നതിനുള്ള യഥാർത്ഥ ഹോസ്റ്റ് നാമം നിർവചിക്കുന്നു, പകരം, നിങ്ങൾക്ക് ഒരു സംഖ്യാ IP വിലാസങ്ങൾ ഉപയോഗിക്കാം, അത് അനുവദനീയമാണ് (കമാൻഡ് ലൈനിലും HostName സ്പെസിഫിക്കേഷനുകളിലും).
  2. ഉപയോക്താവ് - ഇതായി ലോഗിൻ ചെയ്യാൻ ഉപയോക്താവിനെ വ്യക്തമാക്കുന്നു.
  3. പോർട്ട് - റിമോട്ട് ഹോസ്റ്റിൽ കണക്റ്റുചെയ്യുന്നതിന് പോർട്ട് നമ്പർ സജ്ജീകരിക്കുന്നു, ഡിഫോൾട്ട് 22 ആണ്. റിമോട്ട് ഹോസ്റ്റിന്റെ sshd കോൺഫിഗർ ഫയലിൽ കോൺഫിഗർ ചെയ്ത പോർട്ട് നമ്പർ ഉപയോഗിക്കുക.
  4. പ്രോട്ടോക്കോൾ - മുൻഗണനാ ക്രമത്തിൽ ssh പിന്തുണയ്ക്കേണ്ട പ്രോട്ടോക്കോൾ പതിപ്പുകൾ ഈ ഓപ്ഷൻ നിർവചിക്കുന്നു. സാധാരണ മൂല്യങ്ങൾ ‘1’, ‘2’ എന്നിവയാണ്, ഒന്നിലധികം പതിപ്പുകൾ കോമയാൽ വേർതിരിച്ചിരിക്കണം.
  5. IdentityFile – ഉപയോക്താവിന്റെ DSA, Ed25519, RSA അല്ലെങ്കിൽ ECDSA പ്രാമാണീകരണ ഐഡന്റിറ്റി വായിച്ച ഒരു ഫയൽ വ്യക്തമാക്കുന്നു.
  6. ForwardX11 – സുരക്ഷിത ചാനലിലേക്കും DISPLAY സെറ്റിലേക്കും X11 കണക്ഷനുകൾ സ്വയമേവ റീഡയറക്uട് ചെയ്യപ്പെടുമോ എന്ന് നിർവചിക്കുന്നു. ഇതിന് \അതെ അല്ലെങ്കിൽ \ഇല്ല.
  7. രണ്ട് സാധ്യമായ മൂല്യങ്ങളുണ്ട്
  8. കംപ്രഷൻ - റിമോട്ട് കണക്ഷൻ സമയത്ത് \അതെ മൂല്യം ഉപയോഗിച്ച് കംപ്രഷൻ സജ്ജീകരിക്കാൻ ഇത് ഉപയോഗിക്കുന്നു. സ്ഥിരസ്ഥിതി \ഇല്ല ആണ്.
  9. ServerAliveInterval - സെർവറിൽ നിന്ന് പ്രതികരണമൊന്നും (അല്ലെങ്കിൽ ഡാറ്റ) ലഭിച്ചില്ലെങ്കിൽ, സെർവറിൽ നിന്ന് ഒരു പ്രതികരണം അഭ്യർത്ഥിക്കുന്നതിനായി ssh എൻക്രിപ്റ്റ് ചെയ്ത ചാനലിലൂടെ ഒരു സന്ദേശം അയയ്ക്കും. സ്ഥിര മൂല്യം 0 ആണ്, അതായത് സെർവറിലേക്ക് സന്ദേശങ്ങളൊന്നും അയയ്uക്കില്ല, അല്ലെങ്കിൽ ബാച്ച്uമോഡ് ഓപ്ഷൻ നിർവചിച്ചിട്ടുണ്ടെങ്കിൽ 300.
  10. ServerAliveCountMax - സെർവറിൽ നിന്ന് ഒരു പ്രതികരണവും ലഭിക്കാതെ തന്നെ അയച്ചേക്കാവുന്ന സെർവർ ലൈവ് സന്ദേശങ്ങളുടെ എണ്ണം സജ്ജീകരിക്കുന്നു.
  11. LogLevel - ssh-ൽ നിന്ന് സന്ദേശങ്ങൾ ലോഗ് ചെയ്യുമ്പോൾ ഉപയോഗിക്കുന്ന വെർബോസിറ്റി ലെവൽ നിർവചിക്കുന്നു. അനുവദനീയമായ മൂല്യങ്ങളിൽ ഉൾപ്പെടുന്നു: നിശബ്uദ, മാരകമായ, പിശക്, വിവരം, വെർബോസ്, ഡീബഗ്, ഡീബഗ്1, ഡീബഗ്2, ഡീബഗ്3. സ്ഥിരസ്ഥിതി വിവരമാണ്.

ഏതെങ്കിലും റിമോട്ട് ലിനക്സ് ഹോസ്റ്റിലേക്ക് (CentOS 7 - എന്റെ കാര്യത്തിൽ) കണക്റ്റുചെയ്യുന്നതിനുള്ള സ്റ്റാൻഡേർഡ് മാർഗം, മുകളിലുള്ള കോൺഫിഗറേഷൻ ഫയലിന്റെ സെക്ഷൻ രണ്ടിൽ നിർവചിച്ചിരിക്കുന്നു, ഞങ്ങൾ സാധാരണയായി താഴെയുള്ള കമാൻഡ് ടൈപ്പ് ചെയ്യും:

$ ssh -i ~/.ssh/id_rsa -p 22 [email 

എന്നിരുന്നാലും, ssh ക്ലയന്റ് കോൺഫിഗറേഷൻ ഫയൽ ഉപയോഗിച്ച്, നമുക്ക് ഇനിപ്പറയുന്ന കമാൻഡ് ടൈപ്പ് ചെയ്യാം:

$ ssh centos7 

ssh ക്ലയന്റ് കോൺഫിഗറേഷൻ മാൻ പേജിൽ നിങ്ങൾക്ക് കൂടുതൽ ഓപ്ഷനുകളും ഉപയോഗ ഉദാഹരണങ്ങളും കണ്ടെത്താൻ കഴിയും:

$man ssh_config

ഇപ്പോൾ അത്രയേയുള്ളൂ, ഈ ഗൈഡിൽ, Linux-ൽ ഒരു ഉപയോക്തൃ-നിർദ്ദിഷ്ട (ഇഷ്uടാനുസൃത) ssh ക്ലയന്റ് കോൺഫിഗറേഷൻ ഫയൽ എങ്ങനെ ഉപയോഗിക്കാമെന്ന് ഞങ്ങൾ വിശദീകരിച്ചു. ഈ ലേഖനത്തെക്കുറിച്ച് ഞങ്ങൾക്ക് തിരികെ എഴുതാൻ ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം ഉപയോഗിക്കുക.