#!/bin/sh # Concatenate together an authorized_keys file based on files in # ~/.ssh/{host.d,pubkey.d}. set -e WARNING="# Automatically generated by loadsshkeys; edit ~/.ssh/{host.d,pubkey.d}/ files instead." if [ -e "$HOME/.ssh/authorized_keys" ] && ! cat "$HOME/.ssh/authorized_keys" | grep -q "$WARNING"; then if [ "$1" != "-f" ]; then echo "loadsshkeys: current authorized_keys file was not generated by this script; not touching it" >&2 echo "loadsshkeys: use loadsshkeys -f to override" >&2 exit 1 else cat $HOME/.ssh/authorized_keys > $HOME/tmp/old_authorized_keys echo "loadsshkeys: old authorized_keys file backed up to $HOME/tmp/old_authorized_keys" fi fi keys=$HOME/.ssh/host.d/${USER}_$(hostname -f) if [ -e "$keys" ]; then ( echo "$WARNING" echo cat $keys | while read key; do cat "$HOME/.ssh/pubkey.d/$key" done ) > $HOME/.ssh/authorized_keys fi