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.