Depois de ler o link fornecido, certifique-se de usar authorized_keys, not authorized_keys2. Este último foi preterido durante anos e não funcionou em todas as versões do OpenSSH.
A maneira mais fácil de diagnosticar isso é com uma instância de depuração do servidor SSH. No servidor, execute:
# /usr/sbin/sshd -ddep 2222
... que executa o daemon SSH no modo de depuração, escutando na porta 2222. Refaça seu comando scp com:
$ scp -o port=2222 ...
... e veja o que o servidor diz.
Para as preocupações de segurança de John: se você decidir continuar usando a conta www-data, poderá limitar sua chave a apenas determinadas ações (como a transferência de determinados arquivos) usando uma opção "comando forçado" em authorized_keys.