Server Passwort ändern und keepassx.xml erstellen
Hier habe ich eine Script geschrieben um auf allen meinen Servern ein Passwort zu ändern und anschließend in einer keepassx XML Datei zu Dokumentieren. Voraussetzung hierfür ist, das neben dem Tool pwgen
eine Publikkey auf den Servern ist.
Zunächst muss die Liste der Server in einer Datei angelegt werden.
#!/bin/bash
# Christoph Hueffelmann
# v0.1 2012-12-12
export path=keepassx.xml
function sshpw () {
server=$1
echo $server
#Hier wird ein Zufallspasswort erzeugt.
PW=$(pwgen -1 12)
#Hier wird eine SSH Verbindung auf den Server erstellt und das Passwort geändert
#sollte dieser Vorgang schief gegen wird das PW nicht in die XML Datei geschrieben.
ssh $server "passwd </dev/null > $path
}
function dbcreate() {
echo '
Server
30'
}
function dbentry() {
server=$1
PW=$2
d=$(date "+%Y-%m-%dT%H:%M:%S")
echo "
$server
root
$PW
30
$d
$d
$d
Nie
";
}
function dbclose() {
echo '
'
}
#Hier wird überprüft ob eine Liste angegeben wurde.
if [ "$1" == "" ]; then
echo "ssh-chpw.sh server.liste"
exit 1
else
list=$1
fi
if [ -s "$path" ]; then
echo "Die $path Datei Existiert bereits und sollte nicht überschreiben werden."
exit 1
fi
if [ -x "/usr/bin/pwgen" ]; then
echo "Das Programm pwgen ist nicht verfügbar"
echo " sudo apt-get install pwgen"
exit 1
fi
#Hier werden auskommentierte Zeilen wie # entfernt
tmp=$(mktemp)
sort --random-sort $list.txt | grep -v -e "^#" -e ";" -e "^$" > $tmp
dbcreate > $path
while read server; do
sshpw "${server}"
done > $path
rm $tmp
exit 0
Die Liste der Server wird dann wie folgt übergeben.
# ssh-chpw.sh liste
Die durch das Script erstelle keepassx.xml kann dann in keepass importiert werden und sollte dann umgehend gelöscht werden, da die Passwörter in der XML Datei im Klartext stehen.
Mehr Infos über: KeePassX