Você está no caminho certo ao definir ForceCommand
como um script. Você precisa então inspecionar a variável de ambiente SSH_ORIGINAL_COMMAND
, que contém o comando real que o usuário forneceu ao cliente SSH. Por exemplo:
#!/bin/sh
case "$SSH_ORIGINAL_COMMAND" in
date)
date
;;
fortune)
fortune
;;
*)
echo "Valid commands are: date, fortune"
exit 1
;;
esac
O usuário pode então executar comandos como este:
% ssh localhost fortune
Q: How much does it cost to ride the Unibus?
A: 2 bits.
Se o usuário não fornecer um comando, ele deverá receber uma mensagem de erro do script (e a conexão foi encerrada):
% ssh localhost
Valid commands are: date, fortune, rev
Connection to localhost closed.
Editar: É possível desativar um terminal em authorized_keys ao usar autenticação de chave:
command="/usr/local/bin/restricted.sh",no-pty ssh-rsa AAA...