സ്uക്രിപ്റ്റ് ഉപയോഗിക്കുന്ന ഒന്നിലധികം വിദൂര സെർവറുകൾക്കായി പാസ്uവേഡ് ഇല്ലാത്ത SSH ലോഗിൻ സജ്ജീകരിക്കുക
എസ്എസ്എച്ച് കീ അടിസ്ഥാനമാക്കിയുള്ള പ്രാമാണീകരണം (പബ്ലിക്-കീ പ്രാമാണീകരണം എന്നും അറിയപ്പെടുന്നു) പാസ്uവേഡ് കുറഞ്ഞ പ്രാമാണീകരണത്തെ അനുവദിക്കുന്നു, ഇത് പാസ്uവേഡ് പ്രാമാണീകരണത്തേക്കാൾ കൂടുതൽ സുരക്ഷിതവും മികച്ച പരിഹാരവുമാണ്. എസ്uഎസ്uഎച്ച് പാസ്uവേഡ്-ലെസ് ലോഗിൻ-ന്റെ ഒരു പ്രധാന നേട്ടം, വിവിധ തരത്തിലുള്ള ക്രോസ്-സെർവർ പ്രക്രിയകളുടെ ഓട്ടോമേഷൻ അനുവദിക്കുന്നു എന്നതാണ് സുരക്ഷ.
ഈ ലേഖനത്തിൽ, എങ്ങനെ ഒരു SSH കീ ജോടി സൃഷ്ടിക്കാമെന്നും ഷെൽ സ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് ഒന്നിലധികം റിമോട്ട് ലിനക്സ് ഹോസ്റ്റുകളിലേക്ക് പൊതു കീ പകർത്തുന്നത് എങ്ങനെയെന്നും ഞങ്ങൾ കാണിക്കും.
Linux-ൽ ഒരു പുതിയ SSH കീ സൃഷ്ടിക്കുക
ആദ്യം, SSH കീ ജോഡി (വിദൂര എസ്എസ്എച്ച് സെർവറിലേക്ക് ലോഗിൻ ചെയ്യുമ്പോൾ ഒരു എസ്എസ്എച്ച് ക്ലയന്റ് സ്വയം പ്രാമാണീകരിക്കാൻ ഉപയോഗിക്കുന്ന സ്വകാര്യ/ഐഡന്റിറ്റി കീയും ഒരു എസ്എസ്എച്ച് സെർവറിൽ പ്രവർത്തിക്കുന്ന റിമോട്ട് സിസ്റ്റത്തിൽ അംഗീകൃത കീയായി സംഭരിച്ചിരിക്കുന്ന പൊതു കീയും) ssh- ഉപയോഗിച്ച് ജനറേറ്റുചെയ്യുക. കീജെൻ കമാൻഡ് ഇപ്രകാരമാണ്:
# ssh-keygen

മൾട്ടിപ്പിൾ റിമോട്ട് ലോഗിനുകൾക്കായി ഒരു ഷെൽ സ്ക്രിപ്റ്റ് സൃഷ്ടിക്കുക
അടുത്തതായി, ഒന്നിലധികം റിമോട്ട് ലിനക്സ് ഹോസ്റ്റുകളിലേക്ക് ഒരു പൊതു കീ പകർത്താൻ സഹായിക്കുന്ന ഒരു ഷെൽ സ്ക്രിപ്റ്റ് സൃഷ്ടിക്കുക.
# vim ~/.bin/ssh-copy.sh
ഫയലിൽ ഇനിപ്പറയുന്ന കോഡ് പകർത്തി ഒട്ടിക്കുക (അതനുസരിച്ച് ഇനിപ്പറയുന്ന വേരിയബിളുകൾ മാറ്റിസ്ഥാപിക്കുക USER_NAME
– കണക്റ്റുചെയ്യാനുള്ള ഉപയോക്തൃനാമം, HOST_FILE
- ഹോസ്റ്റ് നെയിമുകളുടെയോ IP വിലാസങ്ങളുടെയോ ലിസ്റ്റ് അടങ്ങുന്ന ഒരു ഫയൽ , കൂടാതെ ERROR_FILE
– ഏതെങ്കിലും ssh കമാൻഡ് പിശകുകൾ സംഭരിക്കുന്നതിനുള്ള ഒരു ഫയൽ).
#!/bin/bash USER_NAME="root" HOST_FILE="/root/hosts" ERROR_FILE="/tmp/ssh-copy_error.txt" PUBLIC_KEY_FILE="$1" if [ ! -f $PUBLIC_KEY_FILE ]; then echo "File '$PUBLIC_KEY_FILE' not found!" exit 1 fi if [ ! -f $HOST_FILE ]; then echo "File '$HOST_FILE' not found!" exit 2 fi for IP in `cat $HOST_FILE`; do ssh-copy-id -i $PUBLIC_KEY_FILE [email protected]$IP 2>$ERROR_FILE RESULT=$? if [ $RESULT -eq 0 ]; then echo "" echo "Public key successfully copied to $IP" echo "" else echo "$(cat $ERROR_FILE)" echo exit 3 fi echo "" done
ഫയൽ സംരക്ഷിച്ച് അത് അടയ്ക്കുക.
തുടർന്ന് കാണിച്ചിരിക്കുന്നതുപോലെ chmod കമാൻഡ് ഉപയോഗിച്ച് സ്ക്രിപ്റ്റ് എക്സിക്യൂട്ടബിൾ ആക്കുക.
# chmod +x ssh-copy.sh
ഇപ്പോൾ ssh-copy.sh
സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുക, സ്ക്രീൻഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങളുടെ പൊതു കീ ഫയൽ ആദ്യത്തെ ആർഗ്യുമെന്റായി വ്യക്തമാക്കുക:
# ./ssh-copy.sh /root/.ssh/prod-rsa.pub

അടുത്തതായി, നിങ്ങളുടെ കീകൾ നിയന്ത്രിക്കാൻ ssh-agent
ഉപയോഗിക്കുക, അത് നിങ്ങളുടെ ഡീക്രിപ്റ്റ് ചെയ്ത സ്വകാര്യ കീ മെമ്മറിയിൽ സൂക്ഷിക്കുകയും ലോഗിനുകൾ പ്രാമാണീകരിക്കാൻ അത് ഉപയോഗിക്കുകയും ചെയ്യുന്നു. ssh-agent
ആരംഭിച്ചതിന് ശേഷം, ഇനിപ്പറയുന്ന രീതിയിൽ നിങ്ങളുടെ സ്വകാര്യ കീ ചേർക്കുക:
# eval "$(ssh-agent -s)" # ssh-add ~/.ssh/prod_rsa

പാസ്uവേഡ് ഇല്ലാതെ റിമോട്ട് ലിനക്സ് സെർവറിലേക്ക് ലോഗിൻ ചെയ്യുക
SSH ഉപയോക്തൃ ആധികാരികതയ്uക്കായി ഒരു പാസ്uവേഡ് നൽകാതെ തന്നെ നിങ്ങൾക്ക് ഇപ്പോൾ നിങ്ങളുടെ ഏതെങ്കിലും വിദൂര ഹോസ്റ്റുകളിലേക്ക് ലോഗിൻ ചെയ്യാൻ കഴിയും. ഈ രീതിയിൽ, നിങ്ങൾക്ക് ക്രോസ്-സെർവർ പ്രക്രിയകൾ ഓട്ടോമേറ്റ് ചെയ്യാൻ കഴിയും.
# ssh [email protected]

ഞങ്ങൾക്ക് നിങ്ങൾക്കായി ഉണ്ടായിരുന്നത് അത്രമാത്രം! ഷെൽ സ്ക്രിപ്റ്റ് മെച്ചപ്പെടുത്തുന്നതിന് നിങ്ങൾക്ക് എന്തെങ്കിലും സംഭാവന(കൾ) ഉണ്ടെങ്കിൽ, ചുവടെയുള്ള ഫീഡ്ബാക്ക് ഫോം വഴി ഞങ്ങളെ അറിയിക്കുക.