Si necesitamos configurar un umask determinado para los usuarios SFTP, debemos tener en cuenta que los cambios que realicemos a nivel de .bashrc no serán válidos para estos usuarios, debido a que no abren una shell al establecer conexión vía SFTP.
A partir de la versión 5.4 de OpenSSH podemos establecer el parámetro umask en la configuración del servidor ssh (sshd_config). Así por ejemplo si quisieramos establecer un umask de 0022 lo podemos hacer añadiendo la siguiente línea al fichero. En Red Hat y derivados se encuentra en /etc/ssh/sshd_config:
Subsystem sftp internal-sftp -u 0022
Y reiniciar el servicio SSH:
# service sshd restart
En versiones anteriores como la 5.3, he conseguido hacerlo funcionar con la siguiente configuración en lugar de la anterior:
Subsystem sftp internal-sftp -l VERBOSE -f LOCAL6 -u 000
Y en la documentación de OpenSSH recomiendan esta otra que también podéis probar si tenéis problemas:
Subsystem sftp /bin/sh -c 'umask 0022; /usr/libexec/openssh/sftp-server'