স্ক্রিপ্ট ব্যবহার করে একাধিক রিমোট সার্ভারের জন্য পাসওয়ার্ডহীন এসএসএইচ লগইন সেটআপ করুন


এসএসএইচ-কি-ভিত্তিক প্রমাণীকরণ (পাবলিক-কী প্রমাণীকরণ হিসাবেও পরিচিত) পাসওয়ার্ড-কম প্রমাণীকরণের জন্য মঞ্জুরি দেয় এবং এটি পাসওয়ার্ড প্রমাণীকরণের চেয়ে আরও সুরক্ষিত এবং আরও ভাল সমাধান। এসএসএইচ পাসওয়ার্ড-কম লগইনের একটি বড় সুবিধা, কেবল সুরক্ষাটি হ'ল এটি বিভিন্ন ধরণের ক্রস-সার্ভার প্রক্রিয়াগুলির স্বয়ংক্রিয়করণের অনুমতি দেয়।

এই নিবন্ধে, আমরা কীভাবে একটি এসএসএইচ কী জুড়ি তৈরি করব এবং শেল স্ক্রিপ্ট সহ একাধিক দূরবর্তী লিনাক্স হোস্টগুলিতে পাবলিক কীটি অনুলিপি করব তা প্রদর্শন করব।

লিনাক্সে একটি নতুন এসএসএইচ কী তৈরি করুন

প্রথমে, এসএসএইচ কীটি তৈরি করুন (কোনও ব্যক্তিগত/পরিচয় কী যা কোনও এসএসএইচ ক্লায়েন্ট একটি রিমোট এসএসএইচ সার্ভারে লগ ইন করার সময় এবং এসএসএইচ সার্ভার চালিত একটি রিমোট সিস্টেমে অনুমোদিত কী হিসাবে সঞ্চিত পাবলিক কী) ব্যবহার করে ssh- keygen কমান্ড নিম্নলিখিত হিসাবে:

# ssh-keygen

মুলিটপল রিমোট লগইনগুলির জন্য একটি শেল স্ক্রিপ্ট তৈরি করুন

এরপরে, একটি শেল স্ক্রিপ্ট তৈরি করুন যা একাধিক দূরবর্তী লিনাক্স হোস্টে সর্বজনীন কী অনুলিপি করতে সহায়তা করবে।

# vim ~/.bin/ssh-copy.sh

ফাইলটিতে নিম্নলিখিত কোডটি অনুলিপি করুন এবং আটকান (নীচে নিম্নলিখিত ভেরিয়েবলগুলি USER_NAME - HOST_FILE এর সাথে সংযুক্ত হওয়ার জন্য ব্যবহারকারীর নাম - এমন একটি ফাইল যা হোস্টনেম বা আইপি ঠিকানাগুলির তালিকা অন্তর্ভুক্ত রয়েছে - , এবং 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 $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-এজেন্ট ব্যবহার করুন যা মেমরিতে আপনার ডিক্রিপ্ট করা ব্যক্তিগত কী ধরে রাখে এবং লগইনগুলিকে প্রমাণীকরণ করতে এটি ব্যবহার করে। ssh- এজেন্ট শুরু করার পরে, এটিতে আপনার ব্যক্তিগত কী যুক্ত করুন:

# eval "$(ssh-agent -s)"
# ssh-add  ~/.ssh/prod_rsa

পাসওয়ার্ড ছাড়াই রিমোট লিনাক্স সার্ভারে লগইন করুন

এখন আপনি এসএসএইচ ব্যবহারকারীর প্রমাণীকরণের জন্য পাসওয়ার্ড না দিয়ে আপনার যেকোন দূরবর্তী হোস্টে লগইন করতে পারেন। এইভাবে, আপনি ক্রস-সার্ভার প্রক্রিয়াগুলি স্বয়ংক্রিয় করতে পারেন।

# ssh [email 

আমাদের জন্য এটিই ছিল! শেল স্ক্রিপ্টটি উন্নত করার ক্ষেত্রে যদি আপনার কোনও অবদান (গুলি) থাকে তবে নীচের প্রতিক্রিয়া ফর্মের মাধ্যমে আমাদের জানান।