RHEL 9-ൽ SSH പാസ്uവേഡ് ഇല്ലാത്ത പ്രാമാണീകരണം എങ്ങനെ കോൺഫിഗർ ചെയ്യാം


സെക്യുർ ഷെല്ലിന്റെ ചുരുക്കം, രണ്ട് എൻഡ് പോയിന്റുകൾക്കിടയിലുള്ള ട്രാഫിക്കിനെ എൻക്രിപ്റ്റ് ചെയ്യുന്ന ഒരു സുരക്ഷിത നെറ്റ്uവർക്ക് പ്രോട്ടോക്കോൾ ആണ് SSH. ഒരു നെറ്റ്uവർക്കിലൂടെ ഫയലുകൾ സുരക്ഷിതമായി ബന്ധിപ്പിക്കുന്നതിനും/അല്ലെങ്കിൽ കൈമാറുന്നതിനും ഇത് ഉപയോക്താക്കളെ അനുവദിക്കുന്നു.

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

[ നിങ്ങൾക്ക് ഇതും ഇഷ്ടപ്പെടാം: OpenSSH സെർവർ എങ്ങനെ സുരക്ഷിതമാക്കാം, കഠിനമാക്കാം ]

SSH രണ്ട് പ്രാമാണീകരണ രീതികൾ നടപ്പിലാക്കുന്നു; പാസ്uവേഡ് അടിസ്ഥാനമാക്കിയുള്ള പ്രാമാണീകരണവും പൊതു-കീ പ്രാമാണീകരണവും. ബ്രൂട്ട് ഫോഴ്uസ് ആക്രമണങ്ങളിൽ നിന്ന് സിസ്റ്റത്തെ സംരക്ഷിക്കുന്ന പബ്ലിക് കീ പ്രാമാണീകരണം ഉപയോഗിച്ച് മികച്ച സുരക്ഷ വാഗ്ദാനം ചെയ്യുന്നതിനാൽ രണ്ടാമത്തേത് കൂടുതൽ മുൻഗണന നൽകുന്നു.

അത് മനസ്സിൽ വെച്ചുകൊണ്ട്, നിങ്ങൾക്ക് RHEL 9-ൽ SSH കീ അടിസ്ഥാനമാക്കിയുള്ള പ്രാമാണീകരണം എങ്ങനെ ക്രമീകരിക്കാമെന്ന് ഞങ്ങൾ കാണിക്കും.

ഞങ്ങളുടെ സജ്ജീകരണം ഇങ്ങനെയാണ്

  • ഒരു Linux/UNIX (Ubuntu-അധിഷ്ഠിത അല്ലെങ്കിൽ RHEL-അധിഷ്ഠിത) സിസ്റ്റം അതിൽ ഞങ്ങൾ കീ ജോഡി ജനറേറ്റ് ചെയ്യും. ഈ ഗൈഡിനായി ഞാൻ ഉബുണ്ടു വിതരണമാണ് ഉപയോഗിക്കുന്നത്.
  • RHEL 9 ന്റെ ഒരു ഉദാഹരണം (ഈ ക്ലൗഡ് ഒരു ഓൺ-പ്രെമൈസ് അല്ലെങ്കിൽ ക്ലൗഡ് VPS ആണ്).

ഘട്ടം 1: ECDSA SSH കീ പെയർ സൃഷ്ടിക്കുക

നിങ്ങളുടെ Linux സിസ്റ്റം ആക്സസ് ചെയ്ത് ഇനിപ്പറയുന്ന രീതിയിൽ SSH കീ ജോഡി സൃഷ്ടിക്കുക. ഈ ഗൈഡിൽ, മികച്ച എൻക്രിപ്ഷനും സുരക്ഷയും നൽകുന്ന ECDSA അൽഗോരിതം ഉപയോഗിച്ച് ഞങ്ങൾ കീ ജോഡി സൃഷ്ടിക്കും.

അതിനാൽ, ECDSA കീ ജോഡി സൃഷ്ടിക്കുന്നതിന്, കമാൻഡ് പ്രവർത്തിപ്പിക്കുക:

$ ssh-keygen -t ecdsa

നിർദ്ദേശങ്ങളുടെ ഒരു പരമ്പരയിലൂടെ കമാൻഡ് നിങ്ങളെ നയിക്കും.

സ്ഥിരസ്ഥിതിയായി, കീ ജോഡി ~/.ssh ഡയറക്uടറിക്കുള്ളിലെ ഉപയോക്താവിന്റെ ഹോം ഡയറക്uടറിയിൽ സംരക്ഷിച്ചിരിക്കുന്നു. കീബോർഡിലെ ENTER അമർത്തിക്കൊണ്ട് നിങ്ങൾക്ക് ഇത് SSH കീ ജോഡിയുടെ ലക്ഷ്യസ്ഥാനമായി അംഗീകരിക്കാം, അല്ലാത്തപക്ഷം, നിങ്ങൾക്ക് ഇഷ്ടപ്പെട്ട പാത വ്യക്തമാക്കാം. ഈ ഗൈഡിൽ, സ്ഥിരസ്ഥിതി പാതയിൽ പോകാൻ ഞങ്ങൾ തീരുമാനിച്ചു.

അടുത്തതായി, ഒരു പാസ്ഫ്രെയ്സ് നൽകാൻ നിങ്ങളോട് ആവശ്യപ്പെടും. റിമോട്ട് RHEL 9 സിസ്റ്റവുമായി ഒരു കണക്ഷൻ സ്ഥാപിക്കുമ്പോൾ നിങ്ങൾ നൽകേണ്ട ഒരു പാസ്uവേഡാണിത്. SSH കീകൾ നൽകുന്ന എൻക്രിപ്ഷന്റെ മുകളിൽ ഇത് ഒരു അധിക പരിരക്ഷ നൽകുന്നു.

എന്നിരുന്നാലും, SSH പരിരക്ഷയിലൂടെയുള്ള പ്രക്രിയകൾ ഓട്ടോമേറ്റ് ചെയ്യാനോ പാസ്uവേഡ് ഇല്ലാത്ത പ്രാമാണീകരണം കോൺഫിഗർ ചെയ്യാനോ ആണ് നിങ്ങളുടെ പദ്ധതിയെങ്കിൽ, ഇത് ശൂന്യമാക്കാൻ ശുപാർശ ചെയ്യുന്നു. അതിനാൽ, ഒരിക്കൽ കൂടി, ENTER അമർത്തിക്കൊണ്ട് ഞങ്ങൾ ഇത് ശൂന്യമാക്കും.

കമാൻഡ് റൺടൈമിന്റെ ഔട്ട്പുട്ട് ചുവടെയുണ്ട്.

കാണിച്ചിരിക്കുന്നതുപോലെ ls കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് SSH കീ ജോഡിയിലേക്ക് ഒരു നോട്ടം കാണാം.

$ ls -l ~/.ssh

id_ecdsa എന്നത് സ്വകാര്യ കീയാണ്, id_ecdsa.pub പൊതു കീയാണ്. സ്വകാര്യ താക്കോൽ എപ്പോഴും ഒരു രഹസ്യമായി തുടരണം, അത് ആരോടും പങ്കിടുകയോ വെളിപ്പെടുത്തുകയോ ചെയ്യരുത്. മറുവശത്ത്, നിങ്ങൾ ബന്ധിപ്പിക്കാൻ ആഗ്രഹിക്കുന്ന ഏത് റിമോട്ട് സിസ്റ്റവുമായും പൊതുജനങ്ങളെ പങ്കിടാൻ നിങ്ങൾക്ക് സ്വാതന്ത്ര്യമുണ്ട്.

ഘട്ടം 2: പൊതു SSH കീ റിമോട്ട് RHEL 9-ലേക്ക് പകർത്തുക

റിമോട്ട് RHEL 9 ഉദാഹരണത്തിലേക്ക് പൊതു കീ പകർത്തുക എന്നതാണ് അടുത്ത ഘട്ടം. നിങ്ങൾക്ക് ഇത് മാനുവൽ വഴിയോ ssh-copy-id കമാൻഡ്-ലൈൻ ടൂൾ ഉപയോഗിച്ചോ ചെയ്യാം. രണ്ടാമത്തേത് ഉപയോഗിക്കാൻ വളരെ എളുപ്പവും കൂടുതൽ സൗകര്യപ്രദവുമായതിനാൽ, ഇനിപ്പറയുന്ന വാക്യഘടന ഉപയോഗിച്ച് ഇത് അഭ്യർത്ഥിക്കുക.

$ ssh-copy-id [email protected]

ഞങ്ങളുടെ കാര്യത്തിൽ, tecmint സാധാരണ ലോഗിൻ ഉപയോക്താവും 192.168.254.129 റിമോട്ട് ഉപയോക്താവിന്റെ IP വിലാസവുമാകുമ്പോൾ കമാൻഡ് ഇപ്രകാരമായിരിക്കും.

$ ssh-copy-id [email protected]

ബന്ധിപ്പിക്കുന്നത് തുടരാൻ അതെ എന്ന് ടൈപ്പ് ചെയ്യുക. തുടർന്ന് വിദൂര ഉപയോക്താവിന്റെ പാസ്uവേഡ് നൽകി ENTER അമർത്തുക.

റിമോട്ട് ഉപയോക്താവിന്റെ ഹോം ഡയറക്uടറിയിലെ ~/.ssh ഡയറക്uടറിയിലെ authorized_keys ഫയലിലേക്ക് പൊതു കീ പകർത്തപ്പെടും. കീ പകർത്തിക്കഴിഞ്ഞാൽ, പൊതു-കീ പ്രാമാണീകരണം ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഇപ്പോൾ റിമോട്ട് RHEL 9 ഉദാഹരണത്തിലേക്ക് ലോഗിൻ ചെയ്യാൻ കഴിയും.

ശ്രദ്ധിക്കുക: RHEL 9-ൽ, SSH വഴിയുള്ള റൂട്ട് ലോഗിൻ പ്രവർത്തനരഹിതമാക്കുകയോ സ്ഥിരസ്ഥിതിയായി നിരസിക്കുകയോ ചെയ്തിരിക്കുന്നു. ഇത് നല്ല കാരണങ്ങളാൽ ആണ് - റൂട്ട് അക്കൗണ്ട് ഉപയോഗിച്ച് ലോഗിൻ ചെയ്യുന്നതിൽ നിന്ന് ആക്രമണകാരിയെ ഇത് തടയുന്നു, ഇത് സിസ്റ്റത്തിലെ എല്ലാ പ്രത്യേകാവകാശങ്ങളും അവന് നൽകും. അതിനാൽ RHEL സിസ്റ്റത്തിലേക്ക് പബ്ലിക് കീ പകർത്തുന്നത് റൂട്ടായി പരാജയപ്പെടും.

നിങ്ങൾക്ക് റൂട്ടായി ലോഗിൻ ചെയ്യണമെങ്കിൽ, ഡിഫോൾട്ട് SSH കോൺഫിഗറേഷൻ ഇനിപ്പറയുന്ന രീതിയിൽ എഡിറ്റ് ചെയ്യേണ്ടതുണ്ട്.

$ sudo vim /etc/ssh/sshd_config

അടുത്തതായി, PermitRootLogin ആട്രിബ്യൂട്ട് yes ആയി സജ്ജമാക്കി മാറ്റങ്ങൾ സംരക്ഷിച്ച് ഫയലിൽ നിന്ന് പുറത്തുകടക്കുക.

വരുത്തിയ മാറ്റങ്ങൾ പ്രയോഗിക്കാൻ, SSH സേവനം പുനരാരംഭിക്കുക.

$ sudo systemctl restart ssh

ഘട്ടം 3: SSH പബ്ലിക് കീ പ്രാമാണീകരണം പരിശോധിക്കുക

ഇനി നമുക്ക് പൊതു കീ പ്രാമാണീകരണം സ്ഥിരീകരിക്കാം. ഇത് ചെയ്യുന്നതിന്, ഇനിപ്പറയുന്ന രീതിയിൽ ലോഗിൻ ചെയ്യുക.

$ ssh [email protected]

ഈ സമയം, നിങ്ങളോട് ഒരു പാസ്uവേഡിനായി ആവശ്യപ്പെടില്ല, കൂടാതെ കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾ റിമോട്ട് RHEL 9 ഷെല്ലിലേക്ക് നേരിട്ട് ഡ്രോപ്പ് ചെയ്യും. നേരത്തെ സൂചിപ്പിച്ചതുപോലെ, authorized_keys ഫയലിന്റെ സാന്നിദ്ധ്യം പരിശോധിക്കാനും നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം.

$ ls -l ~/.ssh 

ക്യാറ്റ് കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ക്രിപ്റ്റോഗ്രാഫിക് പബ്ലിക് കീ ഫയൽ കാണാനും കഴിയും.

$ cat ~/.ssh/authorized_keys

ഞങ്ങൾ എസ്എസ്എച്ച് കീകൾ ജനറേറ്റ് ചെയ്ത ലിനക്സ് ഡെസ്ക്ടോപ്പിൽ, ~/.ssh ഡയറക്ടറിയിൽ അറിയപ്പെടുന്ന_ഹോസ്റ്റുകൾ എന്ന ഫയൽ ജനറേറ്റ് ചെയ്യപ്പെടുന്നു. സിസ്റ്റം ബന്ധിപ്പിച്ചിട്ടുള്ള എല്ലാ വിദൂര സെർവറുകളുടെയും വിരലടയാളം ഇതിൽ അടങ്ങിയിരിക്കുന്നു.

ഈ ഗൈഡിൽ, ഞങ്ങൾ RHEL 9-ൽ SSH കീ അടിസ്ഥാനമാക്കിയുള്ള പ്രാമാണീകരണം വിജയകരമായി ക്രമീകരിച്ചു. നിങ്ങളുടെ ഫീഡ്uബാക്ക് വളരെ സ്വാഗതം ചെയ്യുന്നു.