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 $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
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.