标签: ssh-tunnel

如何使用 PuTTY 启动反向隧道?

我正在尝试使用 Putty 在服务器和笔记本电脑之间建立隧道。问题是,由于笔记本电脑没有公共IP地址,我必须进行反向连接。

ASCII 艺术作品:

SERVER(PORT:6000) ----------> LAPTOP(PORT:7000)
Run Code Online (Sandbox Code Playgroud)

但是,由于笔记本电脑没有公共 IP 地址,我必须:

SERVER(PORT:6000) <---------- LAPTOP(PORT:7000)
Run Code Online (Sandbox Code Playgroud)

但是,来自的所有数据都将从服务器传输到笔记本电脑。

ssh-tunnel putty

15
推荐指数
1
解决办法
5万
查看次数

通过 SSH 隧道连接时 MySQL 访问被拒绝错误

几个月来,我一直通过 SSH 隧道连接到在我们本地测试服务器上运行的 MySQL 实例,没有任何问题。突然之间,我想不出任何变化,服务器开始拒绝来自 Sequel Pro 的登录尝试,并出现以下错误:

无法连接到主机 127.0.0.1,因为访问被拒绝。

仔细检查您的用户名和密码,并确保允许从您当前的位置访问。

MySQL 说:用户 'root'@'localhost' 拒绝访问(使用密码:是)

当通过 SSH 直接连接到服务器时,我可以从终端登录,而不是通过 SSH 隧道。问题并非特定于 Sequel Pro,也不是特定于我自己,我在通过 MySQL Workbench 连接时遇到了与办公室其他人相同的错误。mysqladmin为了理智,我重置了密码,这绝对不是问题。

当我开始深入研究它时,我注意到错误将服务器报告为“localhost”,而不是我在 Sequel Pro 中输入的“127.0.0.1”。一位朋友建议这可能只是错误处理不好,但考虑到 MySQL 中 localhost 和 127.0.0.1 之间的显着差异,这似乎很奇怪。

为了解决隧道问题,我授予了对 root@% 的访问权限,以便我可以直接连接。这在大多数情况下都有效,我可以查看表数据、创建新数据库等。唯一的问题是当我创建用户时出现错误:

用户 'root'@'%' 的访问被拒绝(使用密码:YES)

奇怪的是用户实际上是创建的,我认为这只是授权的问题。尽管如此,从终端我可以在以 root 身份登录时做任何事情。

任何人都可以帮助阐明为什么隧道连接和(可能)grant 命令收到访问被拒绝错误?

作为参考,MySQ 是 5.6.16 版,大部分为默认设置,通过 Homebrew 安装在 MAC OS X 服务器机器上。

更新

以下是当前授予 root 访问权限的主机列表:

mysql> select host,user from mysql.user where user='root';
+----------------+------+
| host           | user |
+----------------+------+
| %              | root …
Run Code Online (Sandbox Code Playgroud)

mysql ssh mac-osx ssh-tunnel

15
推荐指数
1
解决办法
3万
查看次数

如何获取打开的 SSH 隧道列表?

如何获取打开的 SSH 隧道列表?


我正在使用连接到 FreeBSD 服务器的 Mac OS X 客户端。我正在尝试查询客户端上的开放隧道。

ssh ssh-tunnel

14
推荐指数
2
解决办法
3万
查看次数

后台的 autossh 不起作用

我已经通过 autossh 建立了一个隧道。

这有效:

autossh -M 33201 -N -i myIdFile -R 33101:localhost:22 autossh@myhost.com
Run Code Online (Sandbox Code Playgroud)

我想在后台运行 autossh。使用该-f选项似乎很容易。

但是,这不起作用:

autossh -f -M 33201 -N -i myIdFile -R 33101:localhost:22 autossh@myhost.com
Run Code Online (Sandbox Code Playgroud)

Autossh 在后台正常运行,但 ssh 连接似乎每次都失败。在 /var/syslog 中,我看到多次出现:

autossh[3420]: ssh exited with error status 255; restarting ssh
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?一个疯狂的猜测是它与通过密钥文件的身份验证有关。我该如何调试(将 -v 添加到 ssh 选项似乎没有记录到任何地方)。

编辑: 我使用 -y 选项获得了一些 ssh 日志

/usr/bin/ssh[3484]: debug1: Next authentication method: publickey
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_rsa
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_dsa
/usr/bin/ssh[3484]: debug1: Trying private key: /home/myuser/.ssh/id_ecdsa
/usr/bin/ssh[3484]: debug1: …
Run Code Online (Sandbox Code Playgroud)

ssh ssh-tunnel

14
推荐指数
1
解决办法
4万
查看次数

如何使用端口隧道通过网络堡垒连接到私有数据库实例?

我有一个可公开访问的网络堡垒example.compute-1.amazonaws.com和一个私有的 postgres 数据库实例postgres.example.us-east-1.rds.amazonaws.com:5432

我可以使用 ssh 进入堡垒

$ ssh -i key.pem ec2-user@example.compute-1.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

然后,一旦我进入堡垒,我就会创建一个 ssh 隧道:

$ ssh -i key.pem -L 5432:postgres.example.us-east-1.rds.amazonaws.com:5432 ec2-user@example.compute-1.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

然后,我可以通过使用 localhost 从堡垒连接到数据库来验证隧道是否正常工作:

$ psql -p 5432 -h localhost -U postgres
Run Code Online (Sandbox Code Playgroud)

但是,我无法远程连接到数据库(不在堡垒中)。

$ psql -p 5432 -h example.compute-1.amazonaws.com -U postgres
psql: could not connect to server: Connection refused
Is the server running on host "example.compute-1.amazonaws.com" () and accepting
TCP/IP connections on port 5432?
Run Code Online (Sandbox Code Playgroud)

我已将堡垒的安全组配置为接受端口 5432 上的入站流量。

我使用ssh -L正确吗?我应该在堡垒外使用它吗?任何建议将不胜感激。

ssh ssh-tunnel amazon-web-services

14
推荐指数
1
解决办法
1万
查看次数

从远程 SSH 会话 SSH 回到本地机器

我正在尝试使用 SSH 做一些非常不寻常的事情(无论如何对我来说),但我无法让它工作,希望你能帮忙。

我想使用 SSH 从我的 Mac 建立到远程服务器的连接。到现在为止还挺好。现在棘手的一点是,建立到远程服务器的连接后,我想启动从远程服务器 BACK 到本地计算机的连接。我知道,疯了。基本上我需要跳过这些圈子才能浏览远程服务器,然后将文件信息发送回我的本地机器,以便本地机器上的应用程序可以处理它。希望这是有道理的!

目前,如果我在登录到远程服务器后通过 SSH 返回到本地计算机,终端将只是坐在那里呼呼作响,即使使用 -v 也不会出错。

我试图通过查看 $SSH_CLIENT 变量的输出来发现我应该在哪里调用,但我使用的是标准的 vanilla 互联网连接(没有静态 IP 地址),我认为这可能是导致问题的原因。

我已经建立的东西:我在 Mac(OS X 10.6.4)上并且我在系统首选项/共享中启用了远程登录如果我尝试从局域网上的另一台机器通过 SSH 连接到我的 mac,我可以连接没有问题。如果我尝试从我的远程服务器通过 SSH 连接到另一台服务器(不是我的本地机器),我可以毫无问题地连接。

所以上述事实让我觉得我对本地和远程机器上的防火墙等很清楚。

我敢肯定我在这里一定遗漏了一些很明显的东西,但对于我的生活,我无法处理它。

任何帮助,链接或朝着正确方向的一般轻推将不胜感激!

ssh ssh-tunnel

13
推荐指数
1
解决办法
2万
查看次数

我可以将 VSFTPD 配置为仅侦听本地主机吗?

我有一个需要 FTP 且无法执行 SFTP 的旧版应用程序。

我的解决办法是:

  • 使用 VSFTPD 放置一个 FTP 服务器
  • 将防火墙配置为仅接受来自本地主机的端口 21 连接
  • 使用旧版应用程序从客户端设置 SSH 连接
  • 通过 SSH 隧道传输 FTP

我想知道我是否可以将 VSFTPD 配置为除了防火墙之外忽略来自除本地主机之外的任何地方的连接。腰带和护腕都有。

ssh ftp sftp ssh-tunnel vsftpd

12
推荐指数
1
解决办法
2万
查看次数

反向 SSH 隧道:如何将我的端口号发送到服务器?

我有两台机器,客户端和服务器。

客户端(位于公司防火墙后面)使用以下命令打开一个到服务器的反向 SSH 隧道,服务器具有可公开访问的 IP 地址:

ssh -nNT -R0:localhost:2222 insecure@server.example.com

在 OpenSSH 5.3+ 中,紧随0其后的-R意思是“选择一个可用端口”,而不是明确调用一个。我这样做的原因是因为我不想选择一个已经在使用的端口。事实上,实际上有很多客户端需要建立类似的隧道。

此时的问题是服务器不知道哪个客户端是哪个。如果我们想连接回这些客户端之一(通过本地主机),那么我们如何知道哪个端口指的是哪个客户端?

我知道以上述方式使用时,ssh 会将端口号报告给命令行。但是,我也想使用 autossh 来保持会话的活动。autossh 大概通过 fork/exec 运行其子进程,因此实际 ssh 命令的输出在以太中丢失。

此外,我想不出任何其他方式从客户端获取远程端口。因此,我想知道是否有办法确定服务器上的此端口。

我的一个想法是以某种方式使用 /etc/sshrc,它应该是一个为每个连接运行的脚本。但是,我不知道如何在这里获得相关信息(也许是处理该连接的特定 sshd 进程的 PID?)我希望得到一些指针。

谢谢!

ssh ssh-tunnel

12
推荐指数
1
解决办法
5025
查看次数

ssh -R 使目标主机接受所有接口上的连接

我有一个位于 NAT 后面的远程主机。我想通过 ssh 从我家庭网络中的 TARGET 主机连接到 SOURCE。因此,我在 SOURCE 上发出以下命令:

ssh -R 2222:localhost:22 TARGET -N
Run Code Online (Sandbox Code Playgroud)

现在从 TARGET 我可以通过ssh -p 2222 localhost. 美好的

在 TARGET 的同一网络中使用平板电脑,我希望这能正常工作:

ssh -p 2222 TARGET
Run Code Online (Sandbox Code Playgroud)

相反,它看起来像 TARGET 只接受来自本地主机的端口 2222 上的连接。以下是关于 TARGET:

user@TARGET:~/$ netstat -l | grep 2222
tcp        0      0 localhost:2222          *:*                     LISTEN     
tcp6       0      0 localhost:2222          [::]:*                  LISTEN 
Run Code Online (Sandbox Code Playgroud)

有没有办法让远程端ssh -R接受来自其所有接口的连接?

ssh ssh-tunnel

12
推荐指数
1
解决办法
6416
查看次数

许多服务器的SSH访问网关

通过 Ansible 管理多台服务器,目前超过 90 台,有 3 个 devops。一切都很好,但是现在存在一个巨大的安全问题。每个 devop 都使用自己的本地 ssh 密钥来直接访问服务器。每个 devop 都使用一台笔记本电脑,每台笔记本电脑都可能受到威胁,从而使整个生产服务器网络容易受到攻击。

我正在寻找一种集中管理访问的解决方案,从而阻止对任何给定密钥的访问。与将密钥添加到 bitbucket 或 github 的方式没有什么不同。

在我的头顶上,我认为解决方案是从一台机器(网关)到所需产品服务器的隧道......在传递网关时,请求将获取一个新密钥并用于访问产品服务器。结果是我们只需拒绝对网关的访问,就可以在几秒钟内快速有效地终止对任何 devop 的访问。

在此处输入图片说明

这是好逻辑吗?有没有人已经看到了解决这个问题的解决方案?

ssh ssh-tunnel ssh-keys ansible

12
推荐指数
2
解决办法
3941
查看次数

标签 统计

ssh-tunnel ×10

ssh ×9

amazon-web-services ×1

ansible ×1

ftp ×1

mac-osx ×1

mysql ×1

putty ×1

sftp ×1

ssh-keys ×1

vsftpd ×1