问题标签 [ssh-tunnel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6386 浏览

php - 如何结合 ssh 'hostname' 命令在 php 中使用 exec()?

我有一个要运行的简单脚本:

此脚本的目标是在另一台联网服务器上运行命令。如果我从命令行运行上述ssh命令(用真实数据替换虚拟数据): ssh someotherhost ls -l /path/to/dir

它输出正确的 ls 行。但是,当我使用相同的命令从相同的目录运行上述脚本时,它不会在三个底部打印行中的任何一个中输出。但是,顶部的exec()with确实按预期打印出来。whoami所以我的问题是,为什么第一个命令有效而不是第二个?

请注意,两台联网服务器位于内部网络上,并使用 ssh 网络密钥对进行设置。该命令有效,只是不在 php.ini 中。

谢谢你的帮助。

0 投票
2 回答
4248 浏览

java - 使用 Java 通过 SSH 隧道传输文件

我需要使用 SSH/SFTP 连接从远程计算机获取一些文件,但问题如下:

我将在其中运行应用程序的客户端计算机(运行 Windows)连接到一个网络,在该网络上我可以看到远程服务器(第二台计算机,运行 Unix,在同一网络中)。我可以用它进行 SSH 连接,但是包含文件(运行 Unix)的计算机不在这个网络中,我只能通过在第二台计算机上打开的动态隧道 SSH 与这个连接,我通常使用 PuTTY 进行配置这个连接,然后我就可以访问远程文件了。

下图代表架构,(防火墙就像第二台机器)

建筑学

我需要自动完成这项工作,所以我用 Java 和 JSch 库做了一些测试,这里有一些代码:

我得到了连接,但是当我使用 object 运行命令时session,答案来自第二台机器,而不是我预期的第三台机器,我想知道是否有另一个库可以帮助完成这项工作,或者我是使用错误的 JSch。

0 投票
3 回答
3707 浏览

java - 在 Java 中通过 SSH 隧道运行远程命令

我需要使用 SSH 连接从远程计算机运行一些命令,但问题如下:

客户端计算机(运行 Windows)连接到我可以看到远程服务器的网络(第二台 *nix 计算机,在同一网络中)。我可以使用它进行 SSH 连接,但是包含文件(运行 *nix)的计算机不在此网络中,我只能通过在第二台计算机上打开的动态 SSH 隧道与此连接,我通常使用 PuTTY 来配置此连接。然后我可以访问远程文件。

下图代表架构(防火墙就像第二台机器):

建筑学

我需要自动完成这项工作,所以我用 Java 和 JSch 库做了一些测试,这里有一些代码:

我得到了连接,但是当我使用 object 运行命令时session,答案来自第二台机器,而不是我预期的第三台机器。我想知道是否有另一个库可以帮助完成这项工作,或者我使用了错误的 JSch。

0 投票
1 回答
1693 浏览

mysql - MySQL 未知服务器主机(通过 ssh 隧道和 CLI,但不是工作台)

当我尝试通过 SSH 隧道访问 mysql 时,出现错误:

但是,当我通过 MySQL Workbench 或普通的 SSH CLI 进行尝试时,它工作正常。我究竟做错了什么?(我已经扫描了该站点上的多个相关线程,但没有一个可以向我解释这种行为。)

TMI:

我拥有的主机是一个名称,而不是一个 IP。

我这样打开隧道:

我在命令行(通过隧道)上调用mysql,因此:

因此,我通过 SSH 命令行(无隧道)调用 mysql:

0 投票
3 回答
11831 浏览

jmx - VisualVM over Putty SSH 隧道

我正在尝试分析远程 java 应用程序,实际上它是一个游戏服务器。它在我的本地机器(带有 JDK1.7.0_02 x64 的 windows XP x64)上正常工作,但在生产服务器(带有 JDK1.7.0_03 i586 的 CentOS)上表现得非常奇怪。

我做了很多搜索,发现我应该使用 VisualVM 来完成这项任务。所以 VisualVM 在本地机器上运行良好,但在本地机器上没有挂起,我需要在生产环境中使用真实有效负载进行分析。我用参数在远程机器上启动了 jstatd

与政策文件

然后我像这样启动了我的java应用程序

application 和 jstatd 都以 root 权限启动。

并且 VisualVM 无​​法连接到远程主机。但是在远程主机上,我看到以下日志,而 VisualVM 正在运行并添加了远程主机:

进一步谷歌搜索后,我发现我需要使用 ssh 隧道。我通过以下方式配置腻子

http://www.advancedigital.ru/show/putty_config.jpg

和 VisualVM 一样

http://www.advancedigital.ru/show/visualvm_config.jpg

VisualVM 上方的 Adter munipulations 连接到远程主机,但我只能看到线程摘要图表并且探查器处于非活动状态。

我已经看到一些建议,两台机器上的 jvm 应该相似并且具有相同的平台(x86 或 x64),但我已经尝试从另一台机器(带有 JDK1.7.0_03 x86 的 Windows 7 x86)进行分析,并且具有相同的结果。

我也试过这个,但再次得到相同的结果。 基于 ssh 的 VisualVM

我怎样才能让这个分析工作?

0 投票
2 回答
2608 浏览

mysql - MySQL 远程访问通过 SSH 隧道错误

我在本地机器上创建了一个 SSH 隧道,以访问远程机器上的 mysql 服务器。一切都很好,如果我收到此错误,隧道正在工作,但为什么会出现此错误?

这是错误消息:

2013 - 在“读取初始通信数据包”时失去与 MySQL 服务器的连接,系统错误:0

只有当我想通过 Navicat(SSH 隧道)从本地机器连接到远程机器时,才会发生这种情况,远程机器上的 mysql 工作时不会出现此类错误。

你们有什么解决办法吗?

0 投票
1 回答
1859 浏览

php - 通过 php 中的 ssh 连接隧道请求

给定一个在机器 A 上创建到机器 B 的 ssh 隧道,使用例如

在 php 中,如何使用 stream_socket_client() 从机器 A 向机器 C 发出请求,以便通过上述隧道发出这些请求,例如

换句话说,请求必须源自在机器 A 上运行的 php 脚本,向机器 C 发出请求,但对于机器 C,请求必须看起来像是来自机器 B(与机器 C 建立的连接需要使用 tls)。

或者,有没有办法在没有 ssh 隧道的情况下直接在 php 中实现相同的最终结果?对此的任何帮助将不胜感激

0 投票
1 回答
103 浏览

linux - 使用隧道通过第二方访问无法访问的远程存储库(在 Eclipse 上)

我有以下设置:

  • 机器 1:托管给定的 svn 存储库并位于专用网络下
  • 服务器:与机器 1 位于同一网络下(因此可以访问它),但也对外部 ssh 连接开放。
  • 机器2:我的个人电脑(不在同一个专用网络下)只能访问服务器

我想直接访问机器 1,以便我可以在 Eclipse 上使用颠覆性与它托管的存储库进行交互。我可以通过终端 ssh 到服务器,然后从那里 ssh 到机器 1,但到目前为止,我还没有找到一种方法来实现颠覆性。任何建议都非常感谢!

ps.:所有系统都运行linux

0 投票
1 回答
783 浏览

mongodb - Mongodb副本集污染日志和“初始启动”中的仲裁器

我正在使用 MongoBD v.2.0.3 运行副本集,这是最新状态:

我对以下内容感到困惑:1)仲裁器总是报告相同的消息“初始启动”和“运行时间”为 0:0。“初始启动”是什么意思,这条消息不改变是否正常?为什么“最佳时间”总是“0:0”?2)倾斜列传达什么信息?

我已经根据 MongoDB 的文档设置了我的副本,并且数据似乎可以很好地在整个集合中复制,所以这没有问题。

另一件事是所有 MongoDB 主机上的日志都被这些条目污染:

似乎建立和删除了许多连接。那是副本集心跳吗?

附加信息

仲裁器配置

副本集成员配置

MongoDB 实例在不同的机器上运行,并通过在完全连接的网格中设置的 SSH 隧道相互连接。

0 投票
1 回答
631 浏览

ssh - 我想简化 SSH 隧道以执行 MySQL 转储并将文件 SCP 到本地计算机

服务器设置(假 IP)

  • 实用程序 - 1.1.1.1 - 公共 IP 上的 SSH 访问
  • database2 - 1.1.1.2 - 从实用程序对私有 IP 进行 SSH 访问

在半定期的基础上,我需要在 database2 上做一个 mysqldump 并将其拉到我的本地机器上,这样我就可以使用真实数据调试我们的应用程序。我目前的流程如下:

  • SSH 进入实用程序
  • SSH 进入数据库 2
  • 执行 mysqldump 命令
  • 退出数据库2
  • scp 将文件转储到实用程序
  • 退出实用程序
  • scp 转储文件到本地机器

不用说这不是最优的。有没有更快的方法,可能通过隧道,我可以使用我的设置?