Accept a boolean or a list of acceptable values
Of the two I'd go with the second, it doesn't make too much sense to use Booleans and Lists, but Lists and None makes more sense type wise.

The un-Pythonic part of this code, is you assign to check_values twice, which confused me a bit as I thought you were changing check.

I'd also recommend that you try to move away from global variables, c. But otherwise your code is good, :)



If you want to shorten your code a little bit, in the second version you can use or rather than a turnery, this is something that I've noticed to be somewhat popular in JavaScript, but I'm not too sure on how Python folk think of it.

def _raw(self, ssh_command, statuses=None):
    if c.call_result.status not in (statuses or []):
        raise RuntimeError("Exit status of command {} was {}.".format(ssh_command, c.call_result.status))
    return c.call_result