Nachdem ich hier einen schönen Einzeiler gefunden habe, um meinen ssh Schlüssel auf einen Server zu kopieren habe ich mir noch einen kleinen Check geschrieben, damit nicht mehrfach der Schlüssel kopiert wird. Das hat mich auch an ssh-copy-id gestört.

user=$1
hostname=$2
ssh_key=`cat ~/.ssh/id_rsa.pub`

echo "Copying ssh key to host"
ssh="ssh -l $user $hostname"
echo $hostname
echo "$ssh '-o PreferredAuthentications=publickey ls > /dev/null '"
$ssh -o PreferredAuthentications=publickey "ls > /dev/null"
if [[ $? -eq 0 ]];then
    echo 'public key already on host'
else
    echo 'copying public key to host'
    $ssh "mkdir -p -p 700 ~/.ssh/; echo $ssh_key >>  ~/.ssh/authorized_keys"
fi

Auf der Kommandozeile ein entsprechendes Skript copy_ssh_id einfach mit Benutzernamen und Servernamen als Parameter aufrufen.