Talend tSshTunnel Использование - PullRequest
       17

Talend tSshTunnel Использование

0 голосов
/ 27 декабря 2018

Я пытаюсь подключиться к удаленному серверу, используя туннельное соединение ssh, где я должен использовать переадресацию портов с локального сервера на удаленный сервер.Затем мне нужно иметь возможность подключиться к базе данных mysql на удаленном сервере.

Я использую компонент tSshTunnel, который отлично работает в других системах, но выдает ошибку в моей системе и удаленное подключение как "javax.crypto.ShortBufferException: Не удается сохранить MAC в буфере вывода ".

Я много искал, но нигде не мог найти решение.

screen shot

Любая помощь будет принята с благодарностью,Заранее спасибо.

1 Ответ

0 голосов
/ 25 марта 2019

После нескольких дней тестирования и исследований я пришел к выводу - чтобы помочь другим в такой же ситуации, ниже приведено полное руководство, в котором приведен пример подключения к серверу Amazon RDS через туннель SSH черезсервер приложений (EC2), что делает Elastic Beanstalk.

Ручное подключение к серверу с помощью командной строки Windows:

Это основано на том, что я нашел в эта статья о SSH-соединениях на терминале .Команда ssh может не только подключиться к целевому серверу, но и подключиться ко второму серверу через первый.Вот как это работает:

ssh -L 3307:databaseServer.rds.amazonaws.com:3306 -i myPemFile.pem ec2-user@ec2-myApplicationServer.us-west-2.compute.amazonaws.com

Эта команда выполняет следующие действия: 'ssh подключается к моему серверу приложений через порт 22 (по умолчанию) и привязывает каждый запрос к databaseServer: 3306 к локальному хосту моей локальной машины: 3307port '

Оставьте это командное окно как есть, откройте новое и напишите:

mysql -u "databaseUserName" -P 3307 -p"databasePassword"

С этим отображается приглашение mysql.Теперь вы отправляете команды MySQL серверу базы данных через SSH-соединение с сервером приложений.Локальный (ваш собственный компьютер) порт 3307 теперь привязан к серверу базы данных, используя сервер приложений в качестве прокси.

Установка tSshTunnel в Talend Open Studio для интеграции данных

Плагин, обнаруженный на торговой площадке Talend (я использую Talend TOS 7.1.1), не появился в меню «Палитра», поэтому я извлек файл tSshTunnel.zip в папку ~\TOS_DI-20181026_1147-V7.1.1\plugins\org.talend.designer.components.localprovider_7.1.1.20181026_1147\components\tSshTunnel. Вернитесь в Talend Studio, нажмите CTRL SHIFT F3 для перезагрузки.компоненты или перезапустите TOS.

Ошибка в tSshTunnel и способы ее обхода

На конкретный вопрос: ссылки на базы данных Amazon RDS обычно очень длинные (например, ktofbf83428349cntdfg.clus33245kfur.us-west-2.rds.amazonaws.com) и причина сообщения « Cannot Store MAC », по-видимому, заключается в таком огромном размере ввода.Однако плагин принимает эквивалентные URL-адреса ec2-xx.xx.xx.xx.us-west-1.compute.amazonaws.com.Этот URL можно отследить с помощью инструмента, подобного ipinfo .Просто введите ссылку на вашу базу данных, и вы получите соответствующую ссылку в стиле ec2 (которая решает проблему пользователя).

Общие инструкции по использованию tSshTunnel для варианта использования Amazon RDS

Чтобы ответ был как можно более широким, я хотел бы добавить некоторые детали конфигурации:

  • Используемые в вопросе компоненты верны
  • Конфигурация для tSshComponent:
    • Имя хоста: должен быть сервером приложений "ec2-xx.xx.xx.xx.us-west-2.compute.amazonaws.com"
    • Порт: "22", междукавычки
    • Имя пользователя: "ec2-user"
    • Пароль: ""
    • KeyFile: "C: /folder/pemFile.pem" (обратите внимание, что нам нужно использовать '/ 'обратная косая черта)
    • L Строка туннеля: идет в формате «Порт на вашем компьютере, связанный с сервером базы данных»: «Сервер базы данных»: «Порт на сервере базы данных».Например, "3307: ec2-yy.yy.yy.yy -....: 3306"
  • Конфигурация для компонента tDBConnection:
    • Хост: "localhost"
    • Порт: "3307"
    • Имя пользователя: "имя пользователя базы данных"
    • Пароль: "пароль пользователя"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...