SSH: Executa shell diferente baseado na chave pública usada

2

Eu quero permitir acesso ssh a uma conta específica, mas se eu me conectar usando uma chave puclic específica, eu deveria ser deixado em um shell completo, caso contrário, para um restrito.

Exemplo:

I connect with ssh to [email protected] using the public key ABCDEF (correctly set up in authorized_keys) and I get a /bin/zsh shell

If I connect to [email protected] with a password or another public key, I get a /bin/rsh shell

Minha idéia era criar um shell intermediário personalizado (IE: / bin / mysh), verificar a chave usada e executar o shell correto a partir dali, mas não sei como verificar qual chave foi usada (ou se é possível em tudo).

env não parece conter nada útil.

Alguma idéia de como fazer isso ou outras possíveis soluções?

Obrigado.

    
por Massimiliano Torromeo 14.10.2010 / 11:58

1 resposta

5

Use a opção command no arquivo authorized_keys na chave com a qual você deseja usar um shell alternativo. Veja a página sshd(8) man, seção AUTHORIZED_KEYS FILE FORMAT , para detalhes.

    
por 14.10.2010 / 12:10

Tags