Issettja l-Login SSH mingħajr password għal servers mill-bogħod multipli bl-użu ta' Script


L-awtentikazzjoni SSH bbażata fuq iċ-ċavetta (magħrufa wkoll bħala awtentikazzjoni taċ-ċavetta pubblika) tippermetti awtentikazzjoni mingħajr password u hija soluzzjoni aktar sigura u ħafna aħjar mill-awtentikazzjoni tal-password. Vantaġġ ewlieni tal-login SSH mingħajr password, aħseb u ara s-sigurtà huwa li jippermetti l-awtomazzjoni ta 'diversi tipi ta' proċessi bejn is-server.

F'dan l-artikolu, aħna ser nuru kif toħloq par ta 'ċavetta SSH u tikkopja ċ-ċavetta pubblika għal hosts Linux remoti multipli f'daqqa, bi skript tal-qoxra.

Oħloq Ċavetta SSH Ġdida fil-Linux

L-ewwel, iġġenera l-par taċ-ċwievet SSH (iċ-ċavetta privata/identità li klijent SSH juża biex jawtentika lilu nnifsu meta jidħol f'server SSH remot u ċ-ċavetta pubblika maħżuna bħala ċavetta awtorizzata fuq sistema remota li tħaddem server SSH) billi tuża ssh- kmand keygen kif ġej:

# ssh-keygen

Oħloq Shell Script għal Multiple Remote Logins

Sussegwentement, oħloq skript tal-qoxra li jgħin biex tikkopja ċavetta pubblika għal hosts Linux remoti multipli.

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

Ikkopja u waħħal il-kodiċi li ġej fil-fajl (issostitwixxi l-varjabbli li ġejjin kif xieraq USER_NAME – l-isem tal-utent biex tikkonnettja miegħu, HOST_FILE – fajl li fih il-lista tal-ismijiet tal-host jew l-indirizzi IP , u ERROR_FILE – fajl biex jaħżen kwalunkwe żball tal-kmand ssh).

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

Issejvja l-fajl u agħlaqha.

Imbagħad agħmel l-iskrittura eżekutibbli bil-kmand chmod kif muri.

# chmod +x ssh-copy.sh

Issa mexxi l-iskrittura ssh-copy.sh u speċifika l-fajl taċ-ċavetta pubblika tiegħek bħala l-ewwel argument kif muri fil-screenshot:

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

Sussegwentement, uża ssh-agent biex timmaniġġja ċ-ċwievet tiegħek, li żżomm iċ-ċavetta privata decrypted tiegħek fil-memorja u tużaha biex tawtentika l-logins. Wara li tibda l-ssh-agent, żid iċ-ċavetta privata tiegħek magħha kif ġej:

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

Idħol f'Remote Linux Server mingħajr Password

Issa tista' tidħol fi kwalunkwe mill-hosts remoti tiegħek mingħajr ma tipprovdi password għall-awtentikazzjoni tal-utent SSH. B'dan il-mod, tista 'awtomatizza proċessi bejn is-server.

# ssh [email 

Dak kollu kellna għalik! Jekk għandek xi kontribuzzjoni(jiet) x'tagħmel partikolarment lejn it-titjib tal-iskript tal-qoxra, għarrafna permezz tal-formola ta' feedback hawn taħt.