SSH API Implementation

This isn't yet rebased, nor is it mergeable, it's just up for review and comments.
Should we swap "SshCredentials" out with the exact type name?