Pseudo-terminal no se asignará porque stdin no es un terminal

Estoy tratando de escribir un script de shell que crea algunos directorios en un servidor remoto y luego usa scp para copiar archivos de mi máquina local en el control remoto. Esto es lo que tengo hasta ahora:

ssh -t user@server<<EOT
DEP_ROOT='/home/matthewr/releases'
datestamp=$(date +%Y%m%d%H%M%S)
REL_DIR=$DEP_ROOT"/"$datestamp
if [ ! -d "$DEP_ROOT" ]; then
    echo "creating the root directory"
    mkdir $DEP_ROOT
fi
mkdir $REL_DIR
exit
EOT

scp ./dir1 user@server:$REL_DIR
scp ./dir2 user@server:$REL_DIR

Cada vez que lo ejecuto me sale este mensaje:

Pseudo-terminal will not be allocated because stdin is not a terminal.

Y el script simplemente se cuelga para siempre.

Mi clave pública es de confianza en el servidor y puedo ejecutar todos los comandos fuera del script muy bien. ¿Algunas ideas