I’m starting to use Google Compute Engine and repeatedly running into a
problem with known_hosts. GCE recycles public IP addresses pretty
frequently, probably because its usage is still pretty low. When this
happens, SSH on my workstation gets concerned that the signature of the
machine at that IP has changed – it gives a nice warning if I try to
connect directly, but from within Ruby it just throws a NetSSH exception
without explanation. Now I know I need to go edit ~/.ssh/known_hosts when
this happens, but it’s a gotcha.
This has to come up with other cloud providers too, but probably
infrequently enough to not be a big deal. It seems to the right thing to
do would be to have knife go clear known_hosts for the specific IP when a
new node is being created. Conceptually I’d rather not have knife messing
with my local security credentials, but in this case it seems like it
really is the right thing to do. Thoughts?