Jelszó nélküli SSH bejelentkezés beállítása több távoli kiszolgálóhoz Script használatával
Az SSH-kulcs alapú hitelesítés (más néven nyilvános kulcsú hitelesítés) jelszó nélküli hitelesítést tesz lehetővé, és biztonságosabb és sokkal jobb megoldás, mint a jelszavas hitelesítés. Az SSH jelszó nélküli bejelentkezés egyik fő előnye, nem is beszélve a biztonságról, hogy lehetővé teszi a különféle szerverek közötti folyamatok automatizálását.
Ebben a cikkben bemutatjuk, hogyan hozhatunk létre SSH-kulcspárt, és hogyan másolhatjuk a nyilvános kulcsot egyszerre több távoli Linux-gazdagépre egy shell-szkript segítségével.
Hozzon létre egy új SSH-kulcsot Linuxban
Először állítsa elő az SSH-kulcspárt (az a privát/identitáskulcs, amellyel az SSH-kliens hitelesíti magát, amikor bejelentkezik egy távoli SSH-kiszolgálóra, és az SSH-kiszolgálót futtató távoli rendszeren engedélyezett kulcsként tárolt nyilvános kulcsot) a ssh-keygen parancsot a következőképpen:
ssh-keygen
Hozzon létre egy Shell-szkriptet több távoli bejelentkezéshez
Ezután hozzon létre egy shell-szkriptet, amely segít a nyilvános kulcsok több távoli Linux-állomásra történő másolásában.
vim ~/.bin/ssh-copy.sh
Másolja ki és illessze be a következő kódot a fájlba (a következő változókat ennek megfelelően cserélje ki: USER_NAME
– a csatlakozáshoz használt felhasználónév, HOST_FILE
– a gazdagépnevek vagy IP-címek listáját tartalmazó fájl és ERROR_FILE
– egy fájl az ssh parancshibák tárolására).
#!/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 $USER_NAME@$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
Mentse el a fájlt és zárja be.
Ezután tegye a szkriptet végrehajthatóvá a chmod paranccsal az ábrán látható módon.
chmod +x ssh-copy.sh
Most futtassa az ssh-copy.sh
parancsfájlt, és adja meg a nyilvános kulcsfájlt első argumentumként a képernyőképen látható módon:
./ssh-copy.sh /root/.ssh/prod-rsa.pub
Ezután az ssh-agent
segítségével kezelje a kulcsait, amely a memóriában tárolja a visszafejtett privát kulcsot, és a bejelentkezés hitelesítésére használja. Az ssh-agent
elindítása után adja hozzá privát kulcsát az alábbiak szerint:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/prod_rsa
Jelentkezzen be a távoli Linux szerverre jelszó nélkül
Mostantól bármelyik távoli gazdagépre bejelentkezhet anélkül, hogy jelszót adna meg az SSH-felhasználó hitelesítéshez. Így automatizálhatja a kiszolgálók közötti folyamatokat.
ssh [email
Ennyit adtunk neked! Ha bármilyen hozzájárulást szeretne tenni a shell script fejlesztéséhez, tudassa velünk az alábbi visszajelzési űrlapon keresztül.