Estou tentando atualizar meu servidor ssh de chaves RSA de 2048 bits para chaves maiores, pois as recomendações são eliminar as chaves de 2048 bits em breve.
Eu gerei uma nova chave e a adicionei à configuração do sshd, assim:
HostKey / etc / ssh / ssh_host_rsa_key (chave antiga de 2k bits primeiro) HostKey / etc / ssh / ssh_host_rsa4096_key (nova chave maior 2ª )
Depois de reiniciar sshd
, eu ssh'd para o host, não recebo o aviso de identificação alterada, no entanto, o novo também não é armazenado em cache ~/.ssh/known_hosts
. Se eu colocar as linhas na ordem oposta, recebo o aviso de identificação alterada. Da mesma forma, quando adiciono uma chave ed25519, independentemente da ordem em que for inserida, o cliente não adiciona a nova chave ao arquivo de hosts conhecidos.
Isso parece tornar impossível a substituição de chaves do host SSH - é difícil acreditar que esse seja realmente o caso, considerando que a segurança exige rotineiramente a atualização de chaves.
Eu sei que você pode simplesmente trocar a chave e, em seguida, todo cliente precisa executar ssh-keygen -R
para remover a chave antiga, verificar e aceitar manualmente a nova chave - mas isso é uma dor real, especialmente se você tiver muitos clientes se conectando ou não administrar todos os clientes. Sem mencionar, se você não administrar os clientes, há uma chance muito boa de que eles não verifiquem a chave do host e, em vez disso, apenas pressione Y - então a tentativa de melhorar a segurança provavelmente o abrirá para o homem ataques intermediários.
Existe alguma maneira de fazer as atualizações de chave do host SSH funcionarem? Ou seja, os clientes devem aprender a nova chave mais segura (e também desaprender a chave obsoleta). E, sem dar a chave do host, mudou o aviso do homem no meio.