Связано это с тем, что для сессии sftp создается non-login non-interactive shells. Для такой оболочки настройки берутся из файла ~/.bashrc. Чтобы изменить umask для sftp сессии редактируем файл ~/.bashrc следующим образом — находим и комментируем следующую строку (строка находится в начале файла):
#[ -z "$PS1" ] && return
Вместо неё пишем следующий код (значение umask ставите которое вам нужно):
if [ -z "$PS1" ]; then
umask 0007
return
fi
После этого соединяемся по sftp, создаем директорию и смотрим с какими правами она создана:
sftp> mkdir test
sftp> ls -l
...
drwxrwx--- 2 user user 4096 Feb 22 16:57 test
...
Видим, что права соотвествуют установленному параметру umask 0007.