A rssh manpage indica que esta deve ser a shell de login do esses usuários:
The system administrator should install the shell on the restricted
system. Then the password file entry of any user for whom it is
desireable to provide restricted access should be edited, such that
their shell is rssh. For example:
luser:x:666:666::/home/luser:/usr/bin/rssh
Com o ForceCommand , apenas esse comando é executado. Quando você executa scp ou sftp , os comandos são executados pelo SSH ( scp , /usr/lib/openssh/sftp-server , respectivamente) e, é claro, eles não podem ser executados, a menos que o programa executado por ForceCommand use SSH_ORIGINAL_COMMAND para faça isso. Então, para rssh fazer o seu trabalho, tem que ser o shell de login, não um ForceCommand .
Relacionados:
Você pode, em vez disso, usar um script de wrapper que usará rssh em vez do shell de login para executar comandos. Por exemplo:
/usr/local/bin/wrapper-shell :
#! /bin/sh
rssh -c "$SSH_ORIGINAL_COMMAND"
E em /etc/ssh/sshd_config :
Match group sftponly
X11Forwarding no
AllowTcpForwarding no
ForceCommand /usr/local/bin/wrapper-shell
Com /usr/local/bin/wrapper-shell sendo executável, deve funcionar.