问题标签 [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.
git - 通过 SSH 隧道连接到 gitosis 服务器
我在我的 macbook 上设置了 SSH 隧道,就像这样......
所以我可以 ssh 到 localhost:22222 并最终在防火墙后面的 gitosis-server 上。
我创建了一个本地 id_rsa.pub 文件,将其复制到 gitosis 服务器(运行 Centos5),然后使用...将其导入 gitosis
所以......我认为这个命令应该工作......
然而,当它要求输入密码时,它不会......当公钥应该工作时。
关于让 git 通过防火墙后的 gitosis 服务器工作的任何想法?
谢谢,
马特
编辑 - 从 SSH 尝试添加调试
我做了这个命令,'ssh -vvv gitosis@gitosis-server'。我得到了一些调试,它似乎不喜欢我的身份。
编辑 2
好的...肯定是一个坏键。我再次检查了所有的密钥,当然发现 gitosis-server 在 authorized_keys 文件中持有一个错误的密钥。
debug1:用户 gitosis 服务 ssh 连接方法的 userauth-request 无 debug1:尝试 0 次失败 0 debug1: PAM: 为“gitosis”初始化 debug1:PAM:将 PAM_RHOST 设置为“firewall.domain.com” debug1:PAM:将 PAM_TTY 设置为“ssh” debug1: userauth-request 用户 gitosis 服务 ssh-connection 方法 publickey debug1:尝试 1 失败 1 debug1:测试 pkalg/pkblob 是否可以接受 debug1:temporary_use_uid:102/103(e=0/0) debug1:尝试公钥文件 /var/lib/gitosis/.ssh/authorized_keys 调试1:restore_uid:0/0 debug1:temporary_use_uid:102/103(e=0/0) debug1:尝试公钥文件 /var/lib/gitosis/.ssh/authorized_keys2 调试1:restore_uid:0/0 来自 FIRE.WALL.IP.ADDRESS 端口 52453 ssh2 的 gitosis 公钥失败
我仔细查看了 gitosis 服务器上的 authorized_keys 文件……它是不正确的。我仔细检查了我从工作站复制到 /tmp 的公钥文件,它是正确的,但与authorized_keys 中的不同。我删除了服务器上的 authorized_keys 文件并重新运行了“sudo -H -u gitosis gitosis-init < /tmp/id_rsa.gitosis.pub”。再次检查了authorized_keys文件......仍然是错误的。
我通过编辑authorized_keys 并添加正确的密钥来手动更新它,然后我通过隧道从我的工作站工作一两次尝试。然后它像以前一样停止工作。我回到了 gitosis 服务器上的 authorized_keys 文件,果然……gitosis 已将其恢复为不起作用的旧密钥。
为什么这样做....恢复到一个错误的公钥....即使在我尝试使用上述命令添加它之后...它未能更改它....然后手动更改它....这有效,但 git 然后又恢复到坏的状态。
就像 gitosis 一直记得我放在那里的第一个键......并且不会让我将其更改为更正的键。
令人沮丧...
马特
java - 使用 SSH 隧道在运行 Java 应用程序的两个节点之间进行通信
我在 A 类网络中的一堆节点上运行应用程序,但如果我登录到该网络中唯一也具有 B 类地址的节点,则只能从我自己的系统访问它们。
但是,客户端部分(带有 GUI 和一切)只能在我的系统上运行,所以我需要某种方式与 A 类网络进行通信。客户端(我的系统)尝试建立一个到服务器的简单 TCP 套接字(在内部网络的边缘,使用 ServerSocket),但得到一个连接超时异常。由于只打开了 SSH 端口 22,有人建议我使用 SSH 隧道将数据包从我的系统发送到内部网络。
经过一番谷歌搜索后,我看到以下内容允许您设置 SSH 隧道,但我将如何在 Java 中使用它来设置套接字,而不是什么?谢谢!
编辑: 我已经使用 JSch 来设置从我的系统到内部节点的端口转发,但是有什么方法可以使它双向而不需要在每个内部节点上设置单独的隧道?(节点没有使用相同的 TCP 连接进行响应,但已建立到我笔记本电脑端口 2222 的新连接。)
java - Java中的简单SSH隧道
我想用 Java 创建一个 SSH 隧道。我在另一篇文章中注意到不少 Java SSH 库。在我深入研究每个选项之前,也许有人可以给我一些代码片段,说明他们是如何做到的,或者至少告诉我哪个客户端库最适合。
我只需要隧道。我不需要文件传输、终端仿真等东西。是否有几行简单的代码可以转发服务器上的端口以在我的客户端的本地主机适配器上工作?理想情况下,客户端和服务器都使用 Java,但我现在只满足于客户端。
python - Python 3 - 通过代理从 Web 服务器下拉文件对象(无身份验证)
我有一个非常简单的问题,我非常惊讶我没有看到任何具体的内容。我正在尝试遵循使用 python3 通过代理服务器(不需要身份验证)复制托管在网络服务器上的文件的最佳实践。
我使用 python 2.5 做过类似的事情,但我真的很短。我试图把它变成一个函数,我可以在这个网络上的未来脚本中重用它。可以提供的任何帮助将不胜感激。
我觉得我的问题在于尝试使用 urllib.request 或 http.client 没有任何关于如何合并使用代理(没有身份验证)的明确文档。
我一直在看这里并拔出我的头发...... http://docs.python.org/3.1/library/urllib.request.html#urllib.request.ProxyHandler http://docs.python.org/3.1 /library/http.client.html http://diveintopython3.org/http-web-services.html
甚至这篇 stackoverflow 文章: Proxy with urllib2
但在 python3 中 urllib2 已被弃用...
oracle - 通过 ssh 隧道使用 oracle db。错误“ORA-12541:TNS:没有侦听器”
您好,我在通过隧道从我们的数据中心访问 Oracle DB 时遇到问题。
我们有一个非常标准的数据中心,其中一台机器可以从外部访问(我将它的 IP 作为 dc 放在 /etc/hosts 文件中)和内部的 Oracle DB。我们oracle数据库的内网IP地址是192.168.1.7
要创建隧道,我使用以下命令:
当然它可以工作(有时我还会添加一些 debug -vv 以查看是否有任何东西通过)。
现在是困难的部分 - 连接到 Oracle。我安装了即时客户端 11.2。我的 tnsnames.ora 看起来像这样:
当我尝试使用以下命令进行连接时:
它开始通过隧道连接(我在 ssh 调试中看到它),但随后它无法告诉:
当我在 Intranet 上尝试执行相同的命令时,它可以工作(显然唯一的区别是在 tnsnames.ora HOST 中我们有 192.168.1.7 而不是 localhost)。
我还尝试使用简单的命令行:
或者
但没有任何帮助:)
我将不胜感激任何帮助或建议。我是否缺少一些 ssh 标志以使其成为可能?
可能是日志文件:
其中 velvet 是我的本地主机名,johndoe 是我的本地用户名。为什么会发送到对方?
更新:
在从数据中心内部进行了更多调查之后,它看起来像:-第一个连接将转到端口 1521-但随后 sqlplus 被重定向到端口号 > 3300,每次都不同并递增 3(至少几次尝试我有) - 当我们试图通过隧道连接时,sqlplus 将尝试连接到 localhost,它显然会失败
所以错误“No Listener”可能来自我们没有重定向这些端口的事实。有什么方法(可能是 tnsnames.ora 文件中的某个选项)强制使用某些特定端口?
java - 即时重写 tcp 流:有多难?把所说的流转储一下怎么样?
我正在尝试编写一个 tcp 流“隧道”(类似于默认情况下 SSH 处理的那些),但有一个例外,我必须在某些信息流过时重写它。
我确定那里有类似的东西,但我一直找不到。我有三个主要问题:
- 有没有一种简单的方法可以保存 tcp 流以供观察?(即使用 netcat,或 ssh -r/-l/-D,或一起使用其他一些实用程序)
- 动态重写流有多难?
编辑:被重写的信息将只是初始身份验证。
web-services - 如何通过 SSH 隧道访问 WebService?
有个问题。我坐在一个封闭的网络上,我需要访问 DMZ 中的 WebService。WebService 通过非 80 TCP 端口(我们称之为 1234)提供,该端口被封闭网络的防火墙阻止。
但是,我确实可以通过 SSH 访问 DMZ 中的服务器(我们称其为“dmzhost”),所以我认为解决方案是简单地建立这样的隧道:
之后,我应该能够通过 URL http://localhost:4321访问 WS 端点。没运气。我用我的网络浏览器试了一下,得到了消息
我想我在这里的某个地方错过了重点。有没有人知道我做错了什么?
谢谢!
python - 从 python 发起 SSH 隧道的问题
目的是在卫星服务器和集中注册数据库之间建立 n 个 ssh 隧道。我已经在我的服务器之间设置了公钥身份验证,因此他们无需密码提示即可直接登录。怎么办 ?我试过帕拉米科。看起来不错,但仅仅建立一个基本的隧道就变得相当复杂,尽管代码示例会受到重视。我已经尝试过 Autossh,但它在建立一个工作隧道后 2 分钟就死了,奇怪!希望有人可以帮助我提供一个简单的代码片段,我可以使用 supervisord 或 monit 进行守护和监视。
svn - 从家里连接到公司防火墙后面的 SVN 服务器
如何配置 TortoiseSVN 以从家里连接到公司防火墙后面的 SVN 服务器?
这是我很难找到答案的问题。这是我没有的:
- 对企业内网的官方VPN 访问。
- 控制 SVN 服务器。
- 对 Intranet 的任何控制。
- IT部门的合作。
这是我所拥有的:
- 在办公室的办公桌上完全控制我的电脑。
- 意志
这是我尝试过的一个镜头,但似乎没有成功(人名、地点和机器的名称已更改以保护无辜者):
- 我正在使用Wippien设置从我的家用计算机 (NG-ATHOME) 到我办公桌上的工作计算机的零配置 VPN。这行得通,我对两台机器都有完全的网络访问权限。
- 我在 NG-WORKBOX 上运行了适用于 Windows 的 OpenSSH 。
- 我在 NG-ATHOME 上有 PuTTY 连接到 NG-WORKBOX 以通过端口 1080 动态隧道。SOCKS 代理正在工作,因为我可以使用任何 Web 浏览器验证这一点。我可以自信地说这不是场景中的问题。
- 我在配置为在 127.0.0.1:1080 上使用代理的 NG-ATHOME 上使用 TortoiseSVN。当我尝试点击“svn://NG-SOURCE/PonyRepository”时,出现错误:无法连接到主机。我可以ping通NG-SOURCE。
为什么SVN不起作用?
嗯,我怀疑 SVN 不喜欢 SOCKS。有人有建议吗?
connection - 连接多路复用
假设我们已经打开了到另一台远程机器的 TCP 或 UDP 类型的连接。有了这个连接,我们是否可以像 VPN(但不是 VPN)一样通过这个连接虚拟地允许多个连接?我的意思是多个应用程序在远程机器上运行并且您尝试访问这些应用程序,是否有任何多路复用机制或概念支持这种功能?