我公司的生产服务器(FOO、BAR...)位于两个网关服务器(A、B)后面。为了连接到服务器 FOO,我必须使用我的用户名 JOHNDOE 打开与服务器 A 或 B 的 ssh 连接,然后从 A(或 B)我可以访问任何使用标准用户名打开 SSH 连接的生产服务器(我们称之为威比)。
所以,每次我必须做这样的事情:
ssh johndoe@a
...
ssh webby@foo
...
# now I can work on the server
Run Code Online (Sandbox Code Playgroud)
可以想象,当我需要使用scp或需要快速打开多个连接时,这很麻烦。
我已经配置了一个 ssh 密钥,并且我正在使用 .ssh/config 作为一些快捷方式。
我想知道我是否可以创建某种 ssh 配置以便输入
ssh foo
Run Code Online (Sandbox Code Playgroud)
并让 SSH 为我打开/转发所有连接。是否可以?
编辑
womble 的回答正是我要找的,但现在看来我不能使用 netcat,因为它没有安装在网关服务器上。
weppos:~ weppos$ ssh foo -vv
OpenSSH_5.1p1, OpenSSL 0.9.7l 28 Sep 2006
debug1: Reading configuration data /Users/xyz/.ssh/config
debug1: Applying options for foo
debug1: Reading configuration data /etc/ssh_config
debug2: ssh_connect: needpriv 0
debug1: …Run Code Online (Sandbox Code Playgroud) 我的家庭网络中有两台物理服务器,linux ( 192.168.8.x) 和 windows server 2008 ( 192.168.8.y)。
linux 服务器无法通过非标准端口(例如 23008)上的 ssh 从外部访问。如何在 linux 机器上通过 ssh 建立永久的 RDP 隧道?我知道我可以在外部机器上使用 putty,但我不知道如何在 linux 机器上正确设置 sshd。感谢您的任何提示!
这是很容易让我连接到我的远程MySQL服务器上使用AWS sequelpro,但是我用的MongoDB做同样的事情挣扎。
我尝试通过命令行设置 ssh 隧道,如下所示:
ssh -fN -l root -i path/to/id_rsa -L 9999:host.com:27017 host.com
Run Code Online (Sandbox Code Playgroud)
我也试过用 ip 地址替换主机
这个想法是将端口 9999 上的所有 mongodb 连接转发到主机上端口 27101 上的连接。但是当我运行命令时:
mongo --host localhost --port 9999
Run Code Online (Sandbox Code Playgroud)
连接失败,我得到了这个:
MongoDB shell version: 2.6.0
connecting to: localhost:9999/test
channel 2: open failed: connect failed: Connection timed out
channel 3: open failed: connect failed: Connection timed out
2014-05-22T14:42:01.372+0300 DBClientCursor::init call() failed
2014-05-22T14:42:01.374+0300 Error: DBClientBase::findN: transport error: localhost:9999 ns: admin.$cmd query: { whatsmyuri: 1 } at src/mongo/shell/mongo.js:148
exception: connect failed …Run Code Online (Sandbox Code Playgroud) 我使用ssh user@xx.yy.zz.41 -p 1234 -D 9898命令进行隧道传输,并将 firefox socks5 ip 设置为 127.0.0.1 并将其端口设置为 9898。它工作成功,但在终端中我有输出错误:
channel 39: open failed: connect failed: Connection timed out
channel 41: open failed: connect failed: Connection timed out
channel 42: open failed: connect failed: Connection timed out
channel 43: open failed: connect failed: Connection timed out
channel 44: open failed: connect failed: Connection timed out
Run Code Online (Sandbox Code Playgroud)
它定期发生。这是什么?这是个问题吗?我能做什么?
我正在尝试使用 RDC2.1 for Mac 从我的 Mac 连接到 Windows 服务器。
问题是我需要连接的服务器由恶龙保护 - 在完全独立的网络上进行基于 IP 的访问控制。
我有一个可以访问的 IP,但它在我的办公室(即一个完全独立的网络)。
因为该网络没有为 VPN 设置,所以我通过 SSH 隧道设置了一个 SOCKS 代理(一切正常)。
(SSH proxy)
Me (on my Mac) ----------> Office Linux box ----> Windows server
(home network) (office network) (other network)
Run Code Online (Sandbox Code Playgroud)
从我办公室的 Linux 服务器(SSH 服务器),我可以 telnet 到 Windows 服务器上的端口 3389,没问题。但是从我的 Mac 上,我无法听到它发出的吱吱声。有任何想法吗?
我正在使用ssh -D 8080 my server创建 SOCKS 代理。然后我将 OS X 配置localhost:8080为用作 SOCKS 代理。我正在使用它来访问互联网而不受监控。
我正在使用 Google 的 DNS 服务器 (8.8.8.8),但如何确保 DNS 查询通过 SSH 隧道?
我在 aws 中创建了一个带有公有子网和私有子网的 VPC。私有子网不能直接访问外部网络。因此,公共子网中有一个 NAT 服务器,它将所有出站流量从私有子网转发到外部网络。
目前,我可以从公共子网到私有子网的 SSH,也可以从 NAT 到私有子网的 SSH。但是,我想要的是从任何机器(家用笔记本电脑、办公机器和移动设备)到私有子网中的实例的 SSH。
我做了一些研究,我可以设置 NAT 框以将 SSH 转发到私有子网中的实例。但我对此并不走运。
任何人都可以列出我需要设置的内容以使其成为可能。
命名是:
笔记本电脑(VPC 之外的任何设备)
nat(公共子网中的 NAT 服务器)
目的地(我想连接到的私有子网中的服务器)
不确定以下是否有限制:
“destination”没有公网IP,只有子网ip,例如10.0.0.1 “destination”不能通过nat的public连接到“nat”。有几个“目标”服务器,我需要为每个设置一个吗?
谢谢
我在路由器后面有一台无法配置的 Ubuntu 计算机。但是我想通过 ssh 访问那台计算机。我认为 ssh 隧道是可能的,但我不知道该怎么做。我有另一台服务器,我想设置隧道。怎么做?或者也许您有其他想法如何解决这个问题?
我试过:
ssh -N user@my_server -L 22/localhost/8090
Run Code Online (Sandbox Code Playgroud)
但它说:
bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 22
Could not request local forwarding.
Run Code Online (Sandbox Code Playgroud) 我们有一个连接到 MySQL 服务器的 PHP 应用程序,我们希望保护 Web 和应用程序服务器与数据库之间的连接。
在高峰时段,Web 服务器与数据库建立数百个并发连接,并执行大量小型读取和写入。我知道这不是最佳选择,并且正在努力减少与此并行的数据库连接数。
我们目前没有打开与数据库的持久连接,虽然我们打算在将来启用它,但我想独立于它实现它。
硬件方面 - MySQL 服务器和 Web 服务器一样非常笨重(16 核)。他们是专用服务器。
然后,我的问题围绕着保护和加密与数据库服务器的连接的最高效方法。
到目前为止,我的研究表明,主要的性能开销是设置 SSL 连接 - 一旦连接 SSL,性能损失很小。这是我对每种保护连接的方法的了解:
这是我所能得到的。我知道基准测试的局限性 - 根据我运行它们的经验,很难模拟真实世界的流量。我希望有人根据他们自己保护 MySQL 的经验提出一些建议?
谢谢
我们有两个主要环境有问题:
开发和质量保证
每个环境有两台服务器:
要连接应用服务器,必须先连接跳转盒,然后SSH连接应用服务器。
防火墙有一些规则:
我们的问题
我们有很多的内容(670 GB) DEVELOPMENT APPLICATION SERVER,我们需要得到这个的QA APPLICATION SERVER。
将此数据复制到跳转框不是一种选择,因为它们缺少所需的空间量。
我做了一些研究,并了解到我们可以通过这些服务器建立一系列隧道,以便我们可以通过隧道将数据直接从一个应用程序服务器传输到另一个应用程序服务器。但是,我们无法从应用服务器连接到跳转盒的问题。
我们有什么选择吗?这将是一个绝望的局面,时间至关重要。我们没有时间下载数据并重新上传。在服务器上通过网络进行复制会很快,因为它是千兆连接。
ssh-tunnel ×10
ssh ×8
linux ×4
socks ×3
amazon-ec2 ×1
amazon-vpc ×1
database ×1
forwarding ×1
mongodb ×1
mysql ×1
proxy ×1
putty ×1
rdp ×1
ssh-keys ×1
ssl ×1
stunnel ×1
tunnel ×1
tunneling ×1
ubuntu ×1