通过 SSH 端口转发连接到 AWS
Posted
技术标签:
【中文标题】通过 SSH 端口转发连接到 AWS【英文标题】:Connect to AWS over SSH portforward 【发布时间】:2018-07-01 05:44:49 【问题描述】:我想连接到我的 AWS 实例并通过 localhost 连接到我的 MongoDB 数据库。 SSH 隧道似乎可以工作,但是当我尝试与 mongo
连接时,我收到连接失败错误。
SSH 隧道命令:
ssh -i <path to key> -N -L 27017:++++++++++.us-west-2.compute.amazonaws.com:27017 ++++++@++++++++++.us-west-2.compute.amazonaws.com
Mongo 客户端:
mongo -u +++++++ -p ++++++++++ mongodb://localhost:27017/+++++
MongoDB shell version v3.4.7
connecting to: mongodb://localhost:27017/++++++
2018-01-22T15:32:07.125+0100 E QUERY [thread1] Error: network error while attempting to run command 'isMaster' on host 'localhost:27017' :
connect@src/mongo/shell/mongo.js:237:13
@(connect):1:6
exception: connect failed
然后我在隧道一侧得到:
channel 2: open failed: connect failed: Connection refused
我已经直接在服务器上尝试了 mongo 命令,然后它就可以正常工作了。
在我的 Robo T3 客户端上,有一个通过 SSH 连接的选项,并且连接工作正常。
非常感谢任何建议。
编辑
当我启动 mongo 客户端时,没有新行添加到 mongdb 日志文件中。这表明隧道没有发挥作用......
【问题讨论】:
【参考方案1】:根据this documentation,当您尝试不使用 ssl 连接到 MongoDB 服务器时会发生此错误。
然后解决方案是使用 SSL 进行连接,这可以通过将 --ssl
添加到您的连接查询来完成(使其看起来像这样:mongo --ssl -u +++++++ -p ++++++++++ mongodb://localhost:27017/+++++
)。
让我知道这是否适合你!
【讨论】:
您可以尝试另外两件事:-Try what is mentioned in this question,更新服务器或外壳版本-Try replacing localhost with the local ip,然后绑定它。 这无关紧要,因为Robo T3
客户端能够通过 SSH 隧道进行连接。所以服务器端应该没问题。
虽然这意味着更新解决方案不适用于您的情况,但它必须与直接连接不同。你能在/var/log/mongodb/mongod.log
查看日志中的内容吗?
我更新了我的问题。没有添加新线路,因此隧道不起作用。
当您尝试通过带有详细标志 (-v) 的 ssh
连接时,输出是什么?以上是关于通过 SSH 端口转发连接到 AWS的主要内容,如果未能解决你的问题,请参考以下文章