Your auto provision of servers with chef or puppet should be adding them to you .ssh/config with a pointer to the ssh key and special requirements like tunnels through jump hosts/ bastion hosts.
I'm hoping someone chimes in with a bit of a better solution but there's no reason you couldn't have ~/.ssh/config symlinked in the same way.
Make sure you know which version/s of ssh you'll be dealing with and make the config work with the lowest version
Some HN articles/discussions:
https://news.ycombinator.com/item?id=4677049
https://news.ycombinator.com/item?id=7658459
Some stuff changed in OpenSSH 6+ so read the manpages, too.
When I type `ssh<tab>`, I get a list of hosts from my ~/.ssh/config plus hosts I have previously used.
I can actually use `ssh hn<tab>` and it gets auto-completed to `ssh hostname` because "hostname" is configured in my ssh config. The same works for `ssh user@<tab>`
SSH hosts tend to be long, so this seems like a good idea. I realize the .ssh/config exists, but this doesn't require setup per server.
Well you have to ssh to the serer a few times?
Is there any way to add ranking variables to .ssh/config that a regex or autocompletion script like this could read but plain SSH would ignore? 'bad configuration option' if I stick in an unrecognized variable name. Embed in comments?
Host xxx
Rank 2Or am I missing the point?