В документации Apache Mina SSHD Github https://github.com/apache/mina-sshd#configuring-the-server-instance мы видим раздел "KeyPairProvider" .
В этом разделе мы видим
Обычно рекомендуется сохранять сгенерированные ключи, чтобы при перезапуске сервера SSHD те же ключи использовались для аутентификации сервера и во избежание предупреждения, которое могут получить клиенты при изменении ключей хоста.
У меня вопрос как сохранить сгенерированные ключи , потому что каждый раз, когда я делаю перезапуск сервера в Терминале, я вижу сообщение
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
И мне нужно идти в /.ssh/known_hosts и delete для IP-адреса генерируется ключом "sha-rsa".
Я пробовал несколько способов
1.) Путь
if(SecurityUtils.isBouncyCastleRegistered()){
PEMGeneratorHostKeyProvider hostKeyProvider = new PEMGeneratorHostKeyProvider(new File("myapp.pem").getAbsolutePath());
hostKeyProvider.setAlgorithm("RSA");
sshd.setKeyPairProvider(hostKeyProvider);
}else{
SimpleGeneratorHostKeyProvider hostKeyProvider = new SimpleGeneratorHostKeyProvider(new File("myapp.ser").getAbsolutePath());
hostKeyProvider.setAlgorithm("RSA");
sshd.setKeyPairProvider(hostKeyProvider);
}
2.) Путь
Сначала сгенерируйте файл "keystore".
keytool -genkey -keystore "app.keystore" -keyalg RSA
sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider("app.keystore", "RSA"));
3.) Путь
sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider("hostkey.ser"));
4.) Путь
Сначала сгенерируйте файл "PEM".
openssl req -x509 -nodes -days 365000 -newkeyrsa: 1024 -keyout app.crt -out app.crt
openssl pkcs12 -export -in app.crt -out app.p12
openssl pkcs12 -in app.p12 -out app.pem
PEMGeneratorHostKeyProvider hostKeyProvider = new PEMGeneratorHostKeyProvider(new File("app.pem").getAbsolutePath());
hostKeyProvider.setAlgorithm("RSA");
или
PEMGeneratorHostKeyProvider hostKeyProvider = new PEMGeneratorHostKeyProvider("app.pem");
hostKeyProvider.setAlgorithm("RSA");
и положить
sshd.setKeyPairProvider(hostKeyProvider);