rc_local

Path: lib/boxgrinder-build/plugins/platform/ec2/src/rc_local
Last Update: Sat Sep 10 09:37:41 +0000 2011

key=`curl 169.254.169.254/2009-04-04/meta-data/public-keys/0/openssh-key 2>/dev/null`

if [ $? -eq 0 ] ; then

    for home in `find /home/* -maxdepth 0 -type d 2>/dev/null | tr '\n' ' '`; do
        user=`echo $home | awk -F '/' '{ print $3 }'`

        if [ ! -d $home/.ssh ] ; then
            mkdir -p $home/.ssh
            chmod 700 $home/.ssh
            chown $user $home/.ssh
        fi

        actual_key=`echo $key | awk '{ print $2 }'`

        if [ -f $home/.ssh/authorized_keys ]; then
            if [ "`grep $actual_key $home/.ssh/authorized_keys | wc -l`" -gt 0 ]; then
                continue
            fi
        fi

        echo $key >> $home/.ssh/authorized_keys
        chmod 600 $home/.ssh/authorized_keys
        chown $user $home/.ssh/authorized_keys
   done

fi

[Validate]