Invalidando chaves ssh não usadas

5

Estou usando uma conta ssh para todos os meus usuários do Subversion. Eles me mandam suas chaves públicas e eu as coloco em .ssh / authorized_key da conta svn, então elas podem checar o código do Subversion usando o ssh tunnel.

Até agora, tudo funciona bem. O problema é que eu quero invalidar chaves que não foram usadas por algum tempo (digamos, um mês). Alguém sabe uma maneira de fazer o sshd registrar a chave pública quando um usuário entra?

Obrigado.

    
por JH. 05.04.2010 / 00:56

3 respostas

3

Tudo está documentado em sshd (8), na seção "AUTHORIZED_KEYS FILE FORMAT".

Em .ssh / authorized_keys2, adicione algo como environment="SSHKEY=1" no início de cada linha, por isso deve ser parecido com:

environment="SSHKEY=1" ssh-dss AAAAB3N ...
environment="SSHKEY=2" ssh-rsa AAAAB3N ...

Ative a opção PermitUserEnvironment em / etc / ssh / sshd_config e reinicie o sshd. Agora você pode adicionar algo como echo $SSHKEY >>.sshlog a ~ / .bashrc para registrar as chaves ssh usadas.

Mas eu acho que é muito fácil o arquivo de backup authorized_keys2, remover todas as chaves dele, e apenas esperar até que as pessoas chamem / email / im perguntando por que o svn não funciona. Depois, você pode restaurar a chave ou pedir que ela reenvie as chaves para você, se não tiver certeza de qual chave pertence a quem. Como efeito colateral, você saberá quem está realmente trabalhando. :)

    
por 05.04.2010 / 05:24
0

Acho que o lastlog não será muito útil, já que JH diz que ele tem apenas uma conta, com vários usuários reais fazendo login com chaves diferentes (eu me pergunto por quê; você perderá informações valiosas do autor no SVN dessa maneira). / p>

De qualquer forma, pelo menos em meus sistemas (Debian / Ubuntu), o sshd não registra a chave usada para login por padrão, mas parece que é possível forçá-lo a fazer isso, usando "LogLevel Verbose" ou algo parecido esse efeito em sshd_config. Você poderia então escrever / usar um analisador simples para os logs e armazenar chaves usadas, e determinar com base nisso as informações que você precisa.

    
por 05.04.2010 / 05:11
0

Adicione LogLevel VERBOSE ao seu sshd_config
Você também pode querer alterar o volume de negócios do seu log, portanto, você tem logs do último mês.

Note que mostrará a impressão digital da chave no arquivo de log. Você pode usar ssh-keygen -l para mostrar a impressão digital de um arquivo-chave.

    
por 05.04.2010 / 05:32