
Eu tenho um trabalho Chron executando um script bash que então usa SSH para meu servidor. Mas o endereço IP do meu servidor muda de tempos em tempos (meu script bash tem uma maneira de encontrar o novo endereço IP). Mas o problema é que meu script bash recebe o aviso "A autenticidade do host não pode ser estabelecida ...". não quero usar StrictHostKeyChecking=no
por causahomem no meioataques. No entanto:
Se oChave RSAé idêntico a, por exemplo, umChave RSAjá no known_host
arquivo, ou umChave RSAque salvei em algum outro MyServersPublicKey
arquivo, presumo que seja meu servidor e tenha apenas um novo IP.
O próprio aviso exibe oimpressão digitaldoChave RSAdo host "desconhecido", não doChave RSAem si. Suponho que eu poderia economizarChave RSA impressão digitaldo meu host e depois fazer com que meu script bash consuma oimpressão digitaldo aviso e compare-o com o salvoimpressão digital. Mas estou me perguntando se alguém conhece uma maneira mais fácil.
Preciso escrever meu próprio script bash para isso ou há algo disponível?
Responder1
Conforme observado nos comentários, a criação de certificados (chaves de host assinadas) ajudaria você a resolver esse problema (consulte a página de manual do ssh-keygen
capítulo "Certificados" que descreve este procedimento). Basicamente, você criaria uma CA no servidor, assinaria as chaves do host e armazenaria a chave pública da CA em seu servidor, known_hosts
como:
@cert-authority * ssh-rsa AAAAB5W...
A outra possibilidade seria escrever algum script bash, que adicionaria seu IP na frente da chave do host known_hosts
(se você não tiver feito o hash desse arquivo). Algo assim deve funcionar:
sed -i -e "s/your_host/new_ip,your_host/" ~/.ssh/known_hosts