Construí várias máquinas virtuais nas últimas semanas. O problema é que isso .ssh/known_hosts
me dá aHomem no meioaviso. Isso acontece porque outra impressão digital está associada ao IP da máquina virtual.
No .ssh/known_hosts
arquivo, porém, não encontro o registro relacionado ao IP, apenas duas strings bizarras em forma de chave e "ssh-rsa".
Alguém tem alguma idéia sobre como remover a chave antiga do known_hosts
?
Responder1
sed -i '6d' ~/.ssh/known_hosts
Modificará o arquivo ~/.ssh/known_hosts:6 , removendo a 6ª linha.
Na minha opinião, usar ssh-keygen -R
é uma solução melhor para um usuário avançado do openssh, enquanto seu administrador regular do Linux faria melhor em manter suas habilidades sed atualizadas usando o método acima.
Responder2
Existe uma opção ssh-keygen ( -R
) para isso.
man ssh-keygen
lê:
-R
nome de anfitriãoRemove todas as chaves pertencentes
hostname
a umknown_hosts
arquivo. Esta opção é útil para excluir hosts com hash (veja a-H
opção acima).
Responder3
A solução mais simples é:
rm -f .ssh/known_hosts
ssh recriará o arquivo novamente, mas você perderá a verificação de chave para outros hosts!
Ou você pode usar:
ssh-keygen -R "hostname"
Ou a mensagem ssh "man-in-the-middle" deve indicar qual linha do arquivoknown_hosts contém a impressão digital ofensiva. Edite o arquivo, vá para essa linha e exclua-o.
Responder4
Todas as respostas são boas, mas para o SSH profissional real, faltam informações sobre como remover a assinatura ssh com número de porta (não padrão).
Comando simples de remoção de assinatura de host SSH:
ssh-keygen -R example.com
Remoção complexa de chave ssh, por exemplo, você se conecta ao ssh na porta 222 não padrão:
ssh example.com -p 222
e você recebe um aviso, e para remover isso, você precisa usarcolchetesnúmero da porta com dois pontos:
ssh-keygen -R [example.com]:222
Observe que provavelmente haverá registro IP para o mesmo host, então você também precisará removê-lo.
Espero que isso ajude para usuários de configuração não padrão.