ssh-copy-id es un script</strkeep><strkeep> bastante simple que debería ser bastante fácil de replicar en Windows.
Si ignoras todo el manejo de parámetros, el manejo de errores y demás, estos son los dos comandos de ssh-copy-id que realmente hacen el trabajo la mayor parte del tiempo.
GET_ID="cat ${ID_FILE}"
{ eval "$GET_ID" ; } | ssh ${1%:} "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys" || exit 1
Usando las herramientas de Putty un comando como este debería ser equivalente (no probado).
type public_id | plink.exe username@hostname "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys"
Si quieres hacer todo el mismo manejo de errores, y la localización automática de claves, estoy seguro que escribir un script bajo Windows será mucho más complicado, pero ciertamente posible.