Asenna salasanaton SSH-kirjautuminen useille etäpalvelimille komentosarjan avulla


SSH-avainpohjainen todennus (tunnetaan myös nimellä julkisen avaimen todennus) mahdollistaa salasanattoman todennuksen, ja se on turvallisempi ja paljon parempi ratkaisu kuin salasanan todennus. Yksi merkittävä etu SSH-salasanattomalla sisäänkirjautumisella, turvallisuudesta puhumattakaan, on se, että se mahdollistaa erilaisten palvelinten välisten prosessien automatisoinnin.

Tässä artikkelissa esittelemme, kuinka luodaan SSH-avainpari ja kopioidaan julkinen avain useisiin Linux-etäisäntiin kerralla, komentosarjalla.

Luo uusi SSH-avain Linuxiin

Luo ensin SSH-avainpari (yksityinen/henkilöllisyysavain, jota SSH-asiakas käyttää todentamiseen, kun kirjautuu SSH-etäpalvelimeen, ja julkinen avain, joka on tallennettu valtuutettuna avaimena SSH-palvelinta käyttävään etäjärjestelmään) käyttämällä ssh- keygen-komento seuraavasti:

# ssh-keygen

Luo Shell-komentosarja monille etälokitunnuksille

Luo seuraavaksi komentotulkki, joka auttaa kopioimaan julkisen avaimen useisiin Linux-etäisäntiin.

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

Kopioi ja liitä seuraava koodi tiedostoon (korvaa seuraavat muuttujat vastaavasti USER_NAME - käyttäjänimi, johon haluat muodostaa yhteyden, HOST_FILE - tiedosto, joka sisältää luettelon isäntänimistä tai IP-osoitteista ja ERROR_FILE - tiedosto, joka tallentaa kaikki ssh-komentovirheet).

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

Tallenna tiedosto ja sulje se.

Tee sitten komentosarja suoritettavaksi chmod-komennolla kuvan mukaisesti.

# chmod +x ssh-copy.sh

Suorita nyt komento ssh-copy.sh ja määritä julkisen avaimen tiedosto ensimmäisenä argumenttina kuvakaappauksen mukaisesti:

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

Käytä seuraavaksi ssh-agent -näppäimiä hallitaksesi avaimiasi, mikä pitää salatun yksityisen avaimen muistissa ja käyttää sitä kirjautumisten todentamiseen. Kun olet käynnistänyt ssh-agent , lisää yksityinen avain siihen seuraavasti:

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

Kirjaudu Linux-etäpalvelimeen ilman salasanaa

Nyt voit kirjautua mihin tahansa etäisäntään ilman salasanaa SSH-käyttäjän todennukseen. Näin voit automatisoida palvelinten välisiä prosesseja.

# ssh [email 

Se on kaikki mitä meillä oli sinulle! Jos sinulla on panoksia erityisesti shell-komentosarjan parantamiseksi, ilmoita siitä meille alla olevan palautelomakkeen kautta.