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. Üks suur eelis SSH paroolivaba sisselogimine, rääkimata turvalisusest on see, et see võimaldab automatiseerida mitmesuguseid serveritevahelisi protsesse.
Selles artiklis demonstreerime, kuidas luua SSH -võtmepaar ja kopeerida avalik võti korraga mitmele Linuxi serveri hostile koos shelliskriptiga.
Esmalt looge SSH võtmepaar (privaatne/identiteedi võti, mida SSH klient kasutab autentimiseks sisselogimisel SSH -serverisse ja avalik võti, mis on salvestatud volitatud võtmena SSH -serverit kasutavas kaugesüsteemis) ssh-keygen käsk järgmiselt:
# ssh-keygen.
Seejärel looge shelliskript, mis aitab kopeerida avaliku võtme mitmele Linuxi serverile.
# vim ~/.bin/ssh-copy.sh.
Kopeerige ja kleepige järgmine kood faili (asendage vastavalt järgmised muutujad
USER_NAME
- kasutajanimi, millega ühendust võtta, HOST_FILE
- fail, mis sisaldab hostinimede või IP -aadresside loendit ja ERROR_FILE
- fail ssh -käsuvigade salvestamiseks).
#!/bin/bash. USER_NAME= "juur"
HOST_FILE= "/root/hosts"
ERROR_FILE= "/tmp/ssh-copy_error.txt" PUBLIC_KEY_FILE = "$ 1", kui [! -f $ PUBLIC_KEY_FILE]; siis kaja "Faili" $ PUBLIC_KEY_FILE "ei leitud!" väljapääs 1. fi kui [! -f $ HOST_FILE]; siis kaja "Faili" $ HOST_FILE "ei leitud!" väljapääs 2. fi IP jaoks "kass $ HOST_FILE"; tehke ssh-copy-id -i $ PUBLIC_KEY_FILE[e -post kaitstud]$ IP 2> $ ERROR_FILE RESULT = $? kui [$ RESULT -eq 0]; siis echo "" echo "Avalik võti õnnestus kopeerida asukohta $ IP" echo "" else echo "$ (cat $ ERROR_FILE)" echo exit 3 fi echo "" tehtud.
Salvestage fail ja sulgege see.
Seejärel tehke skript käivitatavaks chmod käsk nagu näidatud.
# chmod +x ssh-copy.sh.
Nüüd käivitage ssh-copy.sh
skripti ja määrake oma avaliku võtme fail esimese argumendina, nagu on näidatud ekraanipildil:
# ./ssh-copy.sh /root/.ssh/prod-rsa.pub.
Järgmisena kasutage ssh-agent
teie võtmete haldamiseks, mis hoiab teie dekrüpteeritud privaatvõtit mälus ja kasutab seda sisselogimiste autentimiseks. Pärast alustamist ssh-agent
, lisage sellele oma privaatvõti järgmiselt.
# eval "$ (ssh -agent -s)" # ssh-add ~/.ssh/prod_rsa.
Nüüd saate sisse logida ükskõik millisesse serverisse, ilma SSH -kasutaja autentimiseks parooli andmata. Nii saate automatiseerida serveritevahelisi protsesse.
# ssh [e -post kaitstud]
See on kõik, mis meil teile oli! Kui teil on oma panus, eriti kesta skripti täiustamiseks, andke meile sellest teada allpool oleva tagasiside vormi kaudu.