Uma solução seria usar chaves ssh para isso.
Você pode especificar um comando para ser executado sempre que uma determinada chave ssh for usada para efetuar login no servidor. Ao combinar isso com um script de login simples, você pode obter o controle de acesso desejado.
Aqui está um exemplo rápido que eu concordei e concede acesso até uma certa data.
Adicione o ssh do usuário ao arquivo authorized_keys
do usuário de destino. Neste exemplo, adiciono a data após a qual o usuário não deve mais ter acesso.
~ / .ssh / authorized_keys
command="/etc/ssh/access.sh 2013-04-05" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDc7nKsHpuC6WW8sBbf1j0snelmBsPAN5GQdJ86sJCyCsDzykvB2i2anLS/U131p0yDf0bU8W8kdsLE9pHQ5NLWlxlyWmFxdKujg4B+WxyHFKO0PHKfQhXEwMrYE4m9QwGYtsQrrWXBg4vQwUvOQDA4cNhdvNrIf/V+BGcdWtCXO/JGy7vkyKLd8LLHcZGsG3Pq5trHAKHaWkQgBN8P+atIX3FbwwQl4Ja020P7LW0ddPuUJxltOS11ZjdsG04s/xpL6JX3xi9FdDpO13SkQ5cqD0GIFkI+CLksqGYvvvpC7/22Rl4hc3nAcOIiwekylSB5rpU4LawF1IxCk0sg0BGr
E crie o script de login a ser executado.
/etc/ssh/access.sh
#!/bin/bash
until="$1"
if (( $(date --date="$until" +%s) < $(date +%s) )); then
echo "Your login has expired"
exit
fi
exec ${SSH_ORIGINAL_COMMAND:--a -${SHELL##*/} $SHELL}
(não esqueça de chmod a+x /etc/ssh/access.sh
após criá-lo)
Quando o acesso expirar, será parecido com este
PROMPT # ssh localhost
Your login has expired
Connection to localhost closed.
PROMPT #