#!/bin/bash declare -r CACHEDIR=/var/run/dserver/cache declare -r DSERVER_USER=dserver echo "Updating SSH key cache" ls /home/ | while read remoteuser; do keysfile=/home/$remoteuser/.ssh/authorized_keys if [ -f $keysfile ]; then cachefile=$CACHEDIR/$remoteuser.authorized_keys echo "Caching $keysfile -> $cachefile" cp $keysfile $cachefile chown $DSERVER_USER $cachefile chmod 600 $cachefile fi done # Cleanup obsolete public SSH keys find $CACHEDIR -name \*.authorized_keys -type f | while read cachefile; do remoteuser=$(basename $cachefile | cut -d. -f1) keysfile=/home/$remoteuser/.ssh/authorized_keys if [ ! -f $keysfile ]; then echo "Deleting obsolete cache file $cachefile" rm $cachefile fi done echo "All set..."