Chaves públicas-privadas são pares, você não pode gerar várias chaves públicas para uma chave privada. Então você terá que gerar um par para cada usuário.
Quanto ao tempo de expiração, isso foi respondido aqui . A solução usa o ssh-agent, mas você também pode criar uma tarefa cron que remova as chaves do servidor a cada X minutos.