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.