Bem, se você puder fazer o login sem senha como root, você pode fazer algo assim, eu acho:
scp pub_key root@<host>:
ssh root@<host> 'mkdir -p ~postgres/.ssh; cat pub_key >> ~postgres/.ssh/authorized_keys; chown -R postgres.postgres ~postgres/.ssh; chmod 644 ~postgres/.ssh/authorized_keys; chmod 700 ~postgres/.ssh; rm -f pub_key'
que copia primeiro a chave pública (novamente) para o host remoto, depois adiciona esse arquivo às authorized_keys do usuário postgres e garante que ele tenha as permissões corretas. Ele também fará com que o diretório postgres / .ssh exista e tenha a propriedade / permissões corretas