Iestatiet SSH pieteikšanos bez paroles vairākiem attālajiem serveriem, izmantojot skriptu
SSH atslēgu autentifikācija (pazīstama arī kā publiskās atslēgas autentifikācija) ļauj autentificēt bez parolēm, un tas ir drošāks un daudz labāks risinājums nekā autentifikācija ar paroli. Viena no galvenajām SSH pieteikšanās bez parolēm priekšrocībām, nemaz nerunājot par drošību, ir tā, ka tā ļauj automatizēt dažādu veidu starpserveru procesus.
Šajā rakstā mēs parādīsim, kā izveidot čaulas skriptu SSH atslēgu pāri un kopēt publisko atslēgu vairākos attālos Linux resursdatoros vienlaikus.
Izveidojiet jaunu SSH atslēgu Linux
Vispirms ģenerējiet SSH atslēgu pāri (privāto/identitātes atslēgu, kuru SSH klients izmanto, lai autentificētos, piesakoties attālajā SSH serverī, un publisko atslēgu, kas tiek saglabāta kā autorizēta atslēga attālā sistēmā, kurā darbojas SSH serveris), izmantojot ssh- keygen komandu šādi:
# ssh-keygen
Izveidojiet čaulas skriptu vairākām attālinātām pieteikšanās reizēm
Pēc tam izveidojiet čaulas skriptu, kas palīdzēs kopēt publisko atslēgu vairākos attālos Linux resursdatoros.
# vim ~/.bin/ssh-copy.sh
Nokopējiet un ielīmējiet failā šo kodu (attiecīgi aizstājiet šādus mainīgos USER_NAME
- lietotājvārds, ar kuru izveidot savienojumu, HOST_FILE
- fails, kurā ir resursdatoru vai IP adrešu saraksts un ERROR_FILE
- fails, kurā glabājas visas ssh komandu kļūdas).
#!/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
Saglabājiet failu un aizveriet to.
Pēc tam izveidojiet skriptu izpildāmu ar komandu chmod, kā parādīts.
# chmod +x ssh-copy.sh
Tagad palaidiet skriptu ssh-copy.sh
un norādiet savu publiskās atslēgas failu kā pirmo argumentu, kā parādīts ekrānuzņēmumā:
# ./ssh-copy.sh /root/.ssh/prod-rsa.pub
Pēc tam izmantojiet ssh-agent
, lai pārvaldītu atslēgas. Atšifrētā privātā atslēga tiek glabāta atmiņā un tiek izmantota pieteikšanās autentificēšanai. Pēc ssh-agent
palaišanas pievienojiet tai savu privāto atslēgu šādi:
# eval "$(ssh-agent -s)" # ssh-add ~/.ssh/prod_rsa
Piesakieties attālajā Linux serverī bez paroles
Tagad jūs varat pieteikties jebkurā no saviem attālinātajiem resursdatoriem, nenorādot paroli SSH lietotāja autentifikācijai. Tādā veidā jūs varat automatizēt starpserveru procesus.
# ssh [email
Tas ir viss, kas mums bija jums! Ja jums ir kāds ieguldījums, kas īpaši jāveic, lai uzlabotu čaulas skriptu, informējiet mūs, izmantojot tālāk sniegto atsauksmju veidlapu.