问题标签 [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.
php - 如何结合 ssh 'hostname' 命令在 php 中使用 exec()?
我有一个要运行的简单脚本:
此脚本的目标是在另一台联网服务器上运行命令。如果我从命令行运行上述ssh
命令(用真实数据替换虚拟数据):
ssh someotherhost ls -l /path/to/dir
它输出正确的 ls 行。但是,当我使用相同的命令从相同的目录运行上述脚本时,它不会在三个底部打印行中的任何一个中输出。但是,顶部的exec()
with确实按预期打印出来。whoami
所以我的问题是,为什么第一个命令有效而不是第二个?
请注意,两台联网服务器位于内部网络上,并使用 ssh 网络密钥对进行设置。该命令有效,只是不在 php.ini 中。
谢谢你的帮助。
java - 使用 Java 通过 SSH 隧道传输文件
我需要使用 SSH/SFTP 连接从远程计算机获取一些文件,但问题如下:
我将在其中运行应用程序的客户端计算机(运行 Windows)连接到一个网络,在该网络上我可以看到远程服务器(第二台计算机,运行 Unix,在同一网络中)。我可以用它进行 SSH 连接,但是包含文件(运行 Unix)的计算机不在这个网络中,我只能通过在第二台计算机上打开的动态隧道 SSH 与这个连接,我通常使用 PuTTY 进行配置这个连接,然后我就可以访问远程文件了。
下图代表架构,(防火墙就像第二台机器)
我需要自动完成这项工作,所以我用 Java 和 JSch 库做了一些测试,这里有一些代码:
我得到了连接,但是当我使用 object 运行命令时session
,答案来自第二台机器,而不是我预期的第三台机器,我想知道是否有另一个库可以帮助完成这项工作,或者我是使用错误的 JSch。
java - 在 Java 中通过 SSH 隧道运行远程命令
我需要使用 SSH 连接从远程计算机运行一些命令,但问题如下:
客户端计算机(运行 Windows)连接到我可以看到远程服务器的网络(第二台 *nix 计算机,在同一网络中)。我可以使用它进行 SSH 连接,但是包含文件(运行 *nix)的计算机不在此网络中,我只能通过在第二台计算机上打开的动态 SSH 隧道与此连接,我通常使用 PuTTY 来配置此连接。然后我可以访问远程文件。
下图代表架构(防火墙就像第二台机器):
我需要自动完成这项工作,所以我用 Java 和 JSch 库做了一些测试,这里有一些代码:
我得到了连接,但是当我使用 object 运行命令时session
,答案来自第二台机器,而不是我预期的第三台机器。我想知道是否有另一个库可以帮助完成这项工作,或者我使用了错误的 JSch。
mysql - MySQL 未知服务器主机(通过 ssh 隧道和 CLI,但不是工作台)
当我尝试通过 SSH 隧道访问 mysql 时,出现错误:
但是,当我通过 MySQL Workbench 或普通的 SSH CLI 进行尝试时,它工作正常。我究竟做错了什么?(我已经扫描了该站点上的多个相关线程,但没有一个可以向我解释这种行为。)
TMI:
我拥有的主机是一个名称,而不是一个 IP。
我这样打开隧道:
我在命令行(通过隧道)上调用mysql,因此:
因此,我通过 SSH 命令行(无隧道)调用 mysql:
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
我怎样才能让这个分析工作?
mysql - MySQL 远程访问通过 SSH 隧道错误
我在本地机器上创建了一个 SSH 隧道,以访问远程机器上的 mysql 服务器。一切都很好,如果我收到此错误,隧道正在工作,但为什么会出现此错误?
这是错误消息:
2013 - 在“读取初始通信数据包”时失去与 MySQL 服务器的连接,系统错误:0
只有当我想通过 Navicat(SSH 隧道)从本地机器连接到远程机器时,才会发生这种情况,远程机器上的 mysql 工作时不会出现此类错误。
你们有什么解决办法吗?
php - 通过 php 中的 ssh 连接隧道请求
给定一个在机器 A 上创建到机器 B 的 ssh 隧道,使用例如
在 php 中,如何使用 stream_socket_client() 从机器 A 向机器 C 发出请求,以便通过上述隧道发出这些请求,例如
换句话说,请求必须源自在机器 A 上运行的 php 脚本,向机器 C 发出请求,但对于机器 C,请求必须看起来像是来自机器 B(与机器 C 建立的连接需要使用 tls)。
或者,有没有办法在没有 ssh 隧道的情况下直接在 php 中实现相同的最终结果?对此的任何帮助将不胜感激
linux - 使用隧道通过第二方访问无法访问的远程存储库(在 Eclipse 上)
我有以下设置:
- 机器 1:托管给定的 svn 存储库并位于专用网络下
- 服务器:与机器 1 位于同一网络下(因此可以访问它),但也对外部 ssh 连接开放。
- 机器2:我的个人电脑(不在同一个专用网络下)只能访问服务器。
我想直接访问机器 1,以便我可以在 Eclipse 上使用颠覆性与它托管的存储库进行交互。我可以通过终端 ssh 到服务器,然后从那里 ssh 到机器 1,但到目前为止,我还没有找到一种方法来实现颠覆性。任何建议都非常感谢!
ps.:所有系统都运行linux
mongodb - Mongodb副本集污染日志和“初始启动”中的仲裁器
我正在使用 MongoBD v.2.0.3 运行副本集,这是最新状态:
我对以下内容感到困惑:1)仲裁器总是报告相同的消息“初始启动”和“运行时间”为 0:0。“初始启动”是什么意思,这条消息不改变是否正常?为什么“最佳时间”总是“0:0”?2)倾斜列传达什么信息?
我已经根据 MongoDB 的文档设置了我的副本,并且数据似乎可以很好地在整个集合中复制,所以这没有问题。
另一件事是所有 MongoDB 主机上的日志都被这些条目污染:
似乎建立和删除了许多连接。那是副本集心跳吗?
附加信息
仲裁器配置
副本集成员配置
MongoDB 实例在不同的机器上运行,并通过在完全连接的网格中设置的 SSH 隧道相互连接。
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 转储文件到本地机器
不用说这不是最优的。有没有更快的方法,可能通过隧道,我可以使用我的设置?