A melhor maneira de fazer isso é usar ssh e amarrar a chave a um comando específico usando a restrição 'command = ...' incorporada na chave pública.
chsh: /home/test/test.sh is an invalid shell
A documentação ajuda aqui de chsh (1)
NOTE The only restriction placed on the login shell is that the command name must be listed in /etc/shells, unless the invoker is the superuser, and then any value may be added.
Você precisa executar o chsh com permissões adequadas ou adicionar uma entrada adequada em / etc / shells.