首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Talend tSshTunnel使用

问Talend tSshTunnel使用
EN

Stack Overflow用户
提问于 2018-12-27 07:21:44
回答 2查看 2.9K关注 0票数 0

我试图使用ssh隧道连接连接到远程服务器,其中必须使用从本地服务器到远程服务器的端口转发。然后,我需要能够连接到远程服务器上的mysql数据库。

我使用的是tSshTunnel组件,它在其他系统中运行良好,但在我的系统和远程连接中抛出错误,称为"javax.crypto.ShortBufferException:无法在输出缓冲区中存储MAC“。

我找了很多遍,但哪儿也找不到解决办法。

​

​

任何帮助都将不胜感激。提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2019-03-25 20:46:16

经过几天的测试和研究,我得出了一个结论--为了帮助处于相同情况下的其他人,下面将提供一个完整的指南,说明如何通过应用程序(EC2)服务器上的SSH隧道连接到Amazon服务器,这正是ElasticBean秸秆所做的。

使用命令提示符手动连接到服务器:

这是基于我在本文介绍终端上的SSH连接。中发现的。ssh命令不仅能够连接到目标服务器,还可以通过第一个服务器连接到第二个服务器。这就是它的工作原理:

代码语言:javascript
复制
ssh -L 3307:databaseServer.rds.amazonaws.com:3306 -i myPemFile.pem ec2-user@ec2-myApplicationServer.us-west-2.compute.amazonaws.com

这个命令所做的是:'ssh通过端口22 (默认)连接到我的应用服务器,并将每个请求绑定到数据库服务器:3306到本地机器的本地主机:3307端口‘

保持此命令窗口的原样,打开一个新窗口并编写:

代码语言:javascript
复制
mysql -u "databaseUserName" -P 3307 -p"databasePassword"

这样就显示了mysql提示符。现在,您将通过到应用服务器的SSH连接向数据库服务器发送MySQL命令。本地(您自己的机器)端口3307现在使用应用服务器作为代理绑定到数据库服务器。

在Talend中安装tSshTunnel用于数据集成

在Talend的市场中找到的插件(我使用的是TalendTOS7.1.1)没有出现在调色板菜单中,所以我将tSshTunnel.zip文件解压到文件夹~\TOS_DI-20181026_1147-V7.1.1\plugins\org.talend.designer.components.localprovider_7.1.1.20181026_1147\components\tSshTunnel Go回到Talend,按CTRL F3重新加载组件或重新启动TOS。

tSshTunnel中的Bug及其如何规避

对于具体的问题: Amazon数据库链接通常很长(例如,ktofbf83428349cntdfg.clus33245kfur.us-west-2.rds.amazonaws.com)和‘不能存储MAC’消息的原因显然是如此巨大的输入大小。不过,该插件接受等效的ec2-xx.xx.xx.xx.us-west-1.compute.amazonaws.com URL。这个网址可以用像ipinfo这样的工具来追踪。只要输入你的数据库链接在那里,你就会得到对应的EC2风格的链接(这解决了用户的问题)。

关于Amazon用例使用tSshTunnel的一般说明

为了使答案尽可能广泛,我想添加一些配置细节:

  • 问题中使用的组件是正确的。
  • tSshComponent:的配置
    • 主机名:应该是应用服务器"ec2-xx.xx.xx.xx.us-west-2.compute.amazonaws.com“
    • 端口:"22“,在引号之间
    • 用户名:“EC2-用户”
    • 密码:"“
    • KeyFile:“C:/文件夹/pemFile.pem”(注意,我们需要使用'/‘反斜杠)
    • 隧道字符串:格式为“绑定到数据库服务器的计算机上的端口”:“数据库服务器”:“数据库服务器上的端口”。例如“3307:EC2-yy.yy-.:3306”

​

  • tDBConnection组件的配置:
    • 主持人:“本地主机”
    • 港口:"3307“
    • 用户名:“数据库用户名”
    • 密码:“用户密码”

​

票数 2
EN

Stack Overflow用户

发布于 2022-05-24 15:59:15

如果连接在公钥/私钥中包含密码,则可以修改文件"tSshTunnel_begin.javajet“并在密码字段中插入密码:

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53941259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档