Существует неверное представление о том, что такое закрытый ключ. Закрытый ключ - это просто пара (d, n), и, учитывая только это, сгенерировать открытый ключ из него невозможно, если только вы не можете предположить, что открытый показатель равен 65537, что имеет место почти для всех ключей rsa.
Если по какой-либо причине открытый показатель больше, вы не можете создать открытый ключ из частного.
Тем не менее, значение, хранящееся в качестве "закрытого ключа" для файлов pem, является не только закрытым ключом, но также содержит основные факторы (среди прочего), и поэтому из него легко сгенерировать открытый ключ.