@ df778899 дал мне направление, в котором я должен был это выяснить, с утверждением
Как вы обнаружили, по умолчанию здесь используется JSch, который настраивается
~ / .ssh / файл конфигурации - если он существует, вы можете найти подсказку.
Я уже искал этот файл для подсказок, особенно в поисках ничего о настройке шифрования. Я увидел, что у меня была закомментированная строка в верхней части файла:
# Ciphers +aes256-cbc
То, что я пропустил (я думал, что я сделал текстовый поиск для «шифра», но, очевидно, я этого не сделал), было то, что я спрятался в середине файла среди множества несвязанных настроек, которые я делал опять то же самое, не закомментировано на этот раз:
Host *
...
Ciphers +aes256-cbc
...
Именно эта линия убивает меня с помощью Иша. Если я закомментирую эту строку, моя простая установка будет работать нормально. Заявление @ df778899 о том, что ~/.ssh/config
имеет решающее значение для настройки Jsch, было тем толчком, который мне был нужен.
Это не будет частью моего решения, но я укажу, что следующий код, кажется, показывает, как я могу установить GIT_SSH
в Java, в верхней части моего main()
:
public static void main(String[] args) {
try {
Map<String, String> env = System.getenv();
Field field = env.getClass().getDeclaredField("m");
field.setAccessible(true);
((Map<String, String>) field.get(env)).put("GIT_SSH", "/usr/bin/ssh");
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
SpringApplication.run(DemoApplication.class, args);
}
Это также "решает" мою проблему. Этот бит о getDeclaredField("m")
особенно странен. Какого черта "м"?