If key type is defined as :auto, detect best key type to use. If no acceptable key type is detected as supported by the server, raise an error. If unable to determine supported key types from the server, fallback to original behavior of rsa type key. If key type is defined as custom value, use that type if the server supports it, or if the supported types cannot be read. Otherwise, raise an error informing the user that the key type is not supported.