Hier mal Version 1.1 -- jonny? Deine Meinung?
(Es ist im Moment aber weiterhin so, dass jede IP einen eigenen Eintrag
bekommt. Wenn man's auch so machen kann
[IP1, IP2, IP3]: 22 keytype key
geht's sicher noch eleganter und kürzer!
Zudem ist das Problem aus deinem letzten Beitrag noch nicht beachtet ...
es wird im Moment nur der _letzte_ key genommen.
Das Script kann aber gefahrlos getestet werden ... es legt eine
Sicherheitskopie an und ändert die known_hosts (noch) nicht...
Michael
----------------------------------------------------------------------------------------
#!/bin/bash
###############################################################################
# Dieses Script sorgt dafür, dass die pub_keys aller Clients
# einer Hardwareklasse mit in die known_hosts-Datei des Servers
# eingetragen werden. Vorteil: Die ssh-Verbindung zu allen
# Clients klappt per pub_key-Auth ootb!
# Scriptname : add_all_keys.sh
# Author : von M.H.
# Date : 2016-01-17
# Category : geeignet für linuxmuster 6.x
# Version :
VER='1.1'
#################################################################################
#Name oder IP des Clients, dessen Key kopiert werden soll
#(Linbo-Image-Vorlage):
IP=10.16.1.31
Gruppe=$1
tmpkeys="/root/.ssh/add_to_known_hosts"
tmppub="/root/.ssh/tmp_pubkey"
hostfile="/root/.ssh/known_hosts"
workstations="/var/linbo/workstations"
##########################################################
#Test, ob Syntax richtig angegeben wurde:
filename="${0##*/}"
scriptpath=`pwd -P`
if [ -z "$1" ]
then
echo
echo "Syntax: $scriptpath/$filename <RAUM>"
echo
echo "<RAUM>name aus der workstations-Datei angeben!"
echo
exit 0;
fi
##########################################################
#Cleanup:
rm -f $tmpkeys
#Safety first:
cp -a -- "$hostfile" "$hostfile-$(date +"%Y%m%d-%H%M%S")"
#PubKey auslesen -- wird in Datei umgeleitet:
ssh-keyscan $IP > $tmppub
pubkey=`awk -F" " '{ print $2" " $3}' $tmppub |tail -1`
rm -f $tmppub
#Passende IP-Adressen zu HWK auslesen:
while IFS=";" read raum IPadr;
do
#Alten Eintrag (trotz Hash!) entfernen:
#ssh-keygen -R $IPadr
echo "[$IPadr]:22 $pubkey" >> $tmpkeys
done < <(cat $workstations | cut -d";" -f1,5 | grep $Gruppe)
#Use the following command to remove the offending key.,
# sed -i '6d' ~/.ssh/known_hosts
echo
echo "Die Keys befinden sich unter $tmpkeys!"
exit 0
_______________________________________________
linuxmuster-user mailing list
[email protected]
https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user