Método para descontinuar o par de chaves SSH localmente

10

Estou usando minhas teclas ssh por um tempo. Estou pensando em atualizar meu par de chaves ssh para uma criptografia mais forte e não conheço todos os dispositivos em que minhas chaves estão registradas.

É possível "descontinuar" uma chave SSH localmente, para que eu receba um aviso se me autenticar com uma chave SSH descontinuada?

tim0_o
fonte
Enquanto você está nisso, sugiro que você pare de usar a mesma chave SSH para vários hosts; desnecessariamente aumenta a superfície de ataque e o valor dessa chave em caso de violação. Em vez disso, use uma chave para cada host ao qual você se conecta; idealmente, use uma chave para cada par de cliente e servidor (mas isso aumenta de tamanho se você tiver muitos sistemas de clientes conectados a muitos servidores). Também gosto de marcar as chaves com a data de geração no comentário ou no nome da chave, permitindo-me acompanhar a idade delas. Em seguida, configure um lembrete recorrente a cada 6-24 meses ou mais no seu calendário para renovar.
um CVn
@ MichaelKjörling Não concordo com a primeira parte da sua sugestão. A geração de muitos pares de chaves em que todas as chaves privadas são armazenadas na mesma máquina com as mesmas permissões não fornece melhorias significativas na segurança. Se alguém estiver comprometido, provavelmente o restante também estará comprometido. E, nesse caso, ter muitos pares de chaves significa apenas que haverá mais trabalho para rotacioná-los quando você vir uma razão para gerar um novo par de chaves. A parte sobre a adição de uma data de geração ao comentário é um bom conselho (eu gostaria de ssh-keygenfazer isso por padrão).
kasperd
@kasperd Você faz um bom argumento. Suponho, como sempre, depende muito do seu modelo de ameaça. Eu suspeito que assumi implicitamente que as chaves teriam senhas diferentes, e posso ver como um grande número de chaves nem sempre é prático, a menos que você queira adicionar um gerenciador de senhas à mistura. Ele não no entanto permitir que algo muito próximo ao que o OP está descrevendo, uma vez que uma chave pode ser "obsoleta" muito facilmente, sem afetar outras conexões. Eu suspeito que, no final, é uma questão de gosto pessoal.
a CVn

Respostas:

9

Não conheço nenhuma maneira de fazer algo assim, mas posso ver como seria útil. O que eu estaria inclinado a fazer é parar de adicionar a chave preterida ao meu agente SSH. Dessa forma, toda vez que for usada, terei que digitar novamente a senha. Se for algo como "ugh, outro para consertar", será lembrado sempre que preciso rodar minha chave nessa máquina também.

mulher
fonte
nesse sentido, pode ser útil (dependendo da distribuição / DE) mover o arquivo para outro diretório, por exemplo , o cavalo marinho usa todas as chaves ~/. sshautomaticamente.
guntbert
1
Tudo o que faz isso precisa ser queimado. Isso significa que, no momento em que você tiver mais de seis chaves (eu tenho algumas dúzias), você acabará falhando na autenticação devido a muitas falhas (todas as chaves apresentadas e rejeitadas contam para a contagem de falhas).
Womble
5

Você pode mover a chave ssh antiga para um local não padrão (por exemplo, ~ / .ssh / deprecated_id_rsa) e criar uma nova chave ssh com as propriedades desejadas em ~ / .ssh / id_rsa

Dessa forma, você ainda terá sua chave obsoleta disponível, se necessário ssh -i ~/.ssh/deprecated_id_rsa ..., mas usará a nova chave como padrão.

dedo do pé
fonte