What about ~/.ssh/config? You can associate the right private key files (and more parameters, like username, port, etc) with the corresponding hosts or host alias. If you want something a bit more like a GUI over that, you can use Gnome's connection manager applet (got used to sshmenu before that came out). If you doubt about the security of your .ssh directory for holding your private keys, you can mount an encrypted storage for that.
But if you want a full GUI solution you can set in i.e. putty the private key file for each host, for Linux existed the PAC Manager (that seem to not be maintained anymore), a more maintained alternative seem to be snowflake (it have a different approach too).
Why would you use different private keys? For sharing the account with other people? Each one could have their key in the remote authorized_keys and you will be able to manage them (as in add/remove authorized users) without giving away "the" key used by everyone.
I don't know of any clients that also have a syncing mobile app. Selection seems to be poor without that limitation as well. SecureCRT and PAC Manager (which seems to be a dead project) come to mind.