Settu upp lykilorðslausa SSH innskráningu fyrir marga fjarþjóna með skriftu


SSH Key-based authentication (einnig þekkt sem public-key authentication) gerir kleift að auðkenna lykilorðslausa auðkenningu og það er öruggari og mun betri lausn en lykilorðavottun. Einn stór kostur við SSH lykilorðslausa innskráningu, hvað þá öryggi, er að það gerir kleift að gera sjálfvirkni ýmiss konar ferla yfir netþjóna.

Í þessari grein munum við sýna hvernig á að búa til SSH lyklapar og afrita opinbera lykilinn á marga ytri Linux vélar í einu, með skeljaskriftu.

Búðu til nýjan SSH lykil í Linux

Fyrst skaltu búa til SSH lyklaparið (einka-/auðkennislykilinn sem SSH viðskiptavinur notar til að auðkenna sig þegar þú skráir þig inn á ytri SSH netþjón og opinbera lykilinn sem geymdur er sem viðurkenndur lykill á ytra kerfi sem keyrir SSH netþjón) með því að nota ssh- keygen skipun sem hér segir:

# ssh-keygen

Búðu til Shell Script fyrir margar fjarinnskráningar

Næst skaltu búa til skeljaforskrift sem mun hjálpa til við að afrita opinberan lykil til margra ytri Linux gestgjafa.

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

Afritaðu og límdu eftirfarandi kóða í skrána (skipta um eftirfarandi breytur í samræmi við það USER_NAME – notandanafnið til að tengjast, HOST_FILE – skrá sem inniheldur lista yfir hýsilnöfn eða IP-tölur , og ERROR_FILE – skrá til að geyma allar ssh skipunarvillur).

#!/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

Vistaðu skrána og lokaðu henni.

Gerðu síðan handritið keyranlegt með chmod skipuninni eins og sýnt er.

# chmod +x ssh-copy.sh

Keyrðu nú ssh-copy.sh forskriftina og tilgreindu opinbera lykilskrána þína sem fyrstu rök eins og sýnt er á skjámyndinni:

# ./ssh-copy.sh /root/.ssh/prod-rsa.pub

Næst skaltu nota ssh-agent til að stjórna lyklunum þínum, sem geymir afkóðaða einkalykilinn þinn í minni og notar hann til að auðkenna innskráningu. Eftir að þú hefur ræst ssh-agent skaltu bæta einkalyklinum þínum við hann sem hér segir:

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

Skráðu þig inn á Remote Linux Server án lykilorðs

Nú geturðu skráð þig inn á hvaða ytri gestgjafa sem er án þess að gefa upp lykilorð fyrir SSH notendavottun. Þannig geturðu sjálfvirkt ferla yfir netþjóna.

# ssh [email 

Þetta er allt sem við áttum fyrir þig! Ef þú hefur eitthvað framlag til að gera sérstaklega til að bæta skeljahandritið, láttu okkur vita í gegnum athugasemdareyðublaðið hér að neðan.