Paroolita SSH sisselogimise seadistamine mitme kaugserveri jaoks skripti abil


SSH-võtmepõhine autentimine (tuntud ka kui avaliku võtme autentimine) võimaldab paroolivaba autentimist ning see on turvalisem ja palju parem lahendus kui parooliga autentimine. SSH-paroolivaba sisselogimise, rääkimata turvalisusest, on üks suur eelis see, et see võimaldab automatiseerida mitmesuguseid serveritevahelisi protsesse.

Selles artiklis demonstreerime, kuidas luua SSH-võtmepaari ja kopeerida avalik võti korraga mitmesse Linuxi kaughosti koos shelliskriptiga.

Looge Linuxis uus SSH-võti

Kõigepealt genereerige SSH-võtmepaar (isiklik/identiteetvõti, mida SSH-klient kasutab enda autentimiseks SSH-kaugserverisse sisselogimisel ja SSH-serveri käitavas kaugsüsteemis volitatud võtmena salvestatud avalik võti), kasutades ssh- käsk järgmine:

# ssh-keygen

Mitme kaugsisselogimise jaoks saate luua Shelli skripti

Järgmisena looge shelliskript, mis aitab kopeerida avaliku võtme mitmesse Linuxi kaughosti.

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

Kopeerige ja kleepige faili järgmine kood (asendage vastavalt järgmised muutujad USER_NAME - kasutajanimi, millega ühenduse luua, HOST_FILE - fail, mis sisaldab hostinimede või IP-aadresside loendit ja ERROR_FILE - fail, kuhu salvestatakse ssh-käsu vead).

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

Salvestage fail ja sulgege see.

Seejärel tehke skript käsuga chmod käivitatavaks, nagu näidatud.

# chmod +x ssh-copy.sh

Käivitage nüüd skript ssh-copy.sh ja määrake oma avaliku võtme fail esimese argumendina, nagu ekraanipildil näidatud:

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

Järgmisena kasutage võtmete haldamiseks ssh-agent , mis hoiab teie dekrüpteeritud privaatvõtit mälus ja kasutab seda sisselogimiste autentimiseks. Pärast ssh-agent käivitamist lisage oma privaatne võti järgmiselt:

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

Logige paroolita sisse Linuxi kaugserverisse

Nüüd saate sisse logida mis tahes kaughostidesse, ilma SSH kasutaja autentimiseks parooli pakkumata. Nii saate serverite vahelisi protsesse automatiseerida.

# ssh [email protected]

See on kõik, mis meil teie jaoks oli! Kui teil on panus (ed) eriti shelliskripti täiustamiseks, andke meile sellest teada allpool oleva tagasisidevormi kaudu.