Это на самом деле возможно с Maverick Synergy Java SSH API .
Эта новая ветвь наших SSH API поддерживает новый формат файла закрытого ключа OpenSSH, поэтому вы можете загрузить новый ключ и преобразовать его в старый формат PEM, поддерживаемый BouncyCastle.
Вам понадобитсяследующие зависимости maven:
<dependency>
<groupId>com.sshtools</groupId>
<artifactId>maverick-synergy-client</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.sshtools</groupId>
<artifactId>maverick-bc</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>
Вам также понадобится следующий репозиторий моментальных снимков, поскольку в настоящее время нет официального выпуска API:
<repository>
<id>oss-snapshots</id>
<snapshots>
<enabled>true</enabled>
</snapshots>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</repository>
Сначала вы можете загрузить новыйФормат закрытого ключа OpenSSH с использованием:
SshKeyPair key = SshKeyUtils.getPrivateKey(
new File("id_rsa"), "passphrase");
Затем вы можете преобразовать его, передав его в более старую реализацию формата и извлекая текст с помощью метода getFormattedKey.
System.out.write(new OpenSSHPrivateKeyFileBC(
key, "passphrase").getFormattedKey());
Как немногоИсходя из этого ответа и заявляя, что я являюсь разработчиком рекомендованного проекта, Maverick Synergy - это API третьего поколения, унаследованный от коммерческих API J2SSH Maverick и Maverick Legacy.Maverick Synergy полностью доступна как продукт с открытым исходным кодом, лицензированный по лицензии LGPL.