Estou tentando o SSH por meio de um jumpbox, mas o SSH parece querer verificar as chaves do host para o salto, mesmo que eu esteja dizendo para não usar as opções normais da linha de comando -o StrictHostKeyChecking=no -o UserKnownHostsFile=no
.
Se eu for SSH diretamente para o jumpbox, posso fazer com que o SSH ignore o erro como esperado:
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_jumpuser_rsa jumpuser@jumpbox
No entanto, se eu adicionar a opção de salto de proxy, de repente recebo o erro. O erro NÃO vem do jumpbox, não há arquivos known_hosts em nenhum diretório .ssh no jumpbox, nem estou logando como o jumpuser:
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i ~/.ssh/id_jumpuser_rsa -J jumpuser@jumpbox [email protected]
A mensagem de erro:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
<redacted>.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/user/.ssh/known_hosts:10
remove with:
ssh-keygen -f "/home/user/.ssh/known_hosts" -R jumpbox
ECDSA host key for jumpbox has changed and you have requested strict checking.
Host key verification failed.
ssh_exchange_identification: Connection closed by remote host
Onde user
é meu usuário comum, não o usuário que estou tentando usar como SSH.
Eu não tenho ideia do que está acontecendo aqui. O SSH tem uma substituição especial que força a verificação do hostkey em situações de salto de proxy? Em caso afirmativo, é supremamente irritante, já que isso tornará o provisionamento de VM local uma verdadeira dor.