Definindo /sbin/nologin como o shell do usuário (ou /bin/false ou /bin/true , que são quase equivalente ) proíbe o usuário de efetuar login para executar qualquer comando. O SSH sempre invoca o shell de login do usuário para executar comandos, portanto, é necessário definir o shell de login para um que seja capaz de executar alguns comandos.
Existem vários shells restritos que permitem que os usuários executem apenas alguns comandos. Por exemplo rssh e scponly ambos são shells que permitem ao usuário executar alguns comandos predefinidos (como scp , sftp-server , rsync ,…). Veja também Restringir o acesso do usuário no linux e Você precisa de um shell para o SCP?