Итак, я не работал с докером очень долго.Но это первый раз, когда у меня есть требование ssh OUT контейнера docker.Это должно быть просто, потому что я знаю, что могу подключаться к базам данных, извлекать файлы из репозиториев.Но по какой-то причине я не могу подключиться к удаленному серверу sftp.Интересно, что на моем локальном компьютере он работает нормально (без докера), но при сборке на Jenkins тесты не могут подключиться.Даже на MOCK-сервер, который я настроил и поместил тестовый файл перед запуском тестов.Запуск на Jenkins также затрудняет отладку, в чем проблема.
Я использую Jcraft, чтобы получить соединение ниже:
public static Session getSession (String host, String user) throws JSchException{
JSch jsch = null;
int port = 22;
if (JunitHelperContext.getInstance.isJunit()){
port = JunitHelperContext.getInstance.getSftpPort();
Session session = jsch.getSession(user,host,port);
java.util.Properties config = new java.util.Properties();
config.put(“StrictHostKeyChecking”, “no”);
if (!JunitHelperContext.getInstance.isJunit()){
config.put(“PreferredAuthentications”, “publickey”);
jsch.setKnownHosts(”~/.ssh/known_hosts”);
jsch.addIdentity(“~/.ssh/id_rsa”);
}
session.setConfig(config);
session.connect();
return session;
}
}
Мне нужно выйти и прочитать файл и обработатьЭто.Я могу собрать комплект, используя не докер шаблон.Файл найден и обработан.Запустив его в док-контейнере, я получаю эту ошибку при попытке подключения:
Invalid Key Exception: the security strength of SHA-1 digest algorithm is not sufficient for this key size.
com.jcraft.jsch.JSchException: Session.connect: java.io.IOException: End of IO Stream Read
Так что это похоже на проблему безопасности.В производстве сертификаты находятся на сервере, и их можно прочитать в этом каталоге /.ssh.Но это фиктивный сервер Jcraft, и мне не нужно проходить аутентификацию.
Есть кусок, который мне здесь не хватает?Конфигурация в файле Docker? Спасибо заранее.