Методы изначально были написаны для загрузки ключа определенного типа. На самом деле, все методы автоматически распознают тип и все равно успешно загрузят ключ. Например, вы можете вызвать ключ FromOpenSshPrivate с закрытым ключом PuTTY, и он все еще работает. (вы даже можете передать ему PEM).
Однако ... вам нужно знать, есть ли у вас открытый или закрытый ключ. Вызов FromPrivateKey завершится ошибкой, если вы передадите ему открытый ключ. Причина в том, что закрытые части ключа просто отсутствуют, и если вы хотите загрузить закрытый ключ, это должно быть связано с тем, что вы делаете что-то, для чего требуется закрытый ключ.
С другой стороны, открытый ключ - это только часть полного закрытого ключа. Если у вас есть закрытый ключ, по определению у вас также есть открытый ключ. (Например, открытый ключ RSA состоит из модуля и экспоненты, но закрытый ключ RSA содержит модуль, экспоненту и другие части. Если у вас есть закрытый ключ, то у вас есть модуль и экспонента, и по определению у вас также есть открытый ключ.) Таким образом ... передача закрытого ключа в метод, который загружает открытый ключ, все еще будет работать. Вы просто проходите больше, чем нужно.