如果我转发端口 22,我还能 ssh 进入我的服务器吗?

如果我转发端口 22,我还能 ssh 进入我的服务器吗?

如果我设置“转发”穿梭巴士作为

myserver:~$ sshuttle -r username@TARGET 0.0.0.0/0

我还能myserver通过ssh 进入mymachine吗?我想不能,但我不敢尝试。


或者如果我只转发端口22

myserver:~$ ssh -nNT -L 0.0.0.0:22:localhost:22 TARGET

有没有办法通过 ssh 进入myserver?或者如果你想这样做,你需要为 ssh 打开额外的端口?

答案1

ssh someserver -R 10022:127.0.0.1:22 -fN将允许您直接通过端口 22 ssh 连接到您的机器,并通过someserver端口 10022 连接到您的机器,这将直接将您引导到端口 22 上的服务器。

这是因为守护进程一直在监听它配置的端口,并且它可以维护多个同时的 ssh 会话(当然假设您没有在您的 中限制这一点sshd_config)。

答案2

再仔细一看,你似乎正试图从服务器“ myserver”使用这些为客户端设计的工具。我的回答涵盖了在客户端“ ”上使用它们的情况mymachine

这个项目的文档sshuttle看起来相当不正统:甚至怎么运行的文章只告诉它能做什么。它主要通过说明该项目如何不起作用来将其与其他工具进行比较:它不“像” SSH 端口转发,但它也不“像”“愚蠢/复杂的 VPN”也一样。显然作者似乎认为他发明了一些全新的、当然比以前任何人发明的都更好的东西。

通过阅读文档我们可以得知(要求用法)就是这样

  • 代理人iptables使用(NAT)或recmsg(TPROXY)将所有流量发送到另一端
  • 不需要远程服务器上的管理员访问权限,但需要客户端计算机上的 root 访问权限
  • 两端均使用 Python。

基于此,SSH 到远程端也可能需要代理,但是那不重要,因为你可能ssh从远程服务器到其自身使用外部 IP 地址;连接从隧道的哪一侧发起并不重要。

我不知道你用替代解决方案想做什么,因为它甚至没有试图实现与第一个解决方案相同的结果。但是,22除非你是 root 并且还没有sshd监听,否则你无法绑定到本地端口。即使你成功了,我也看不出这有什么用处。但是,回答这个问题:是的,你仍然可以sshremote:22+ 本地端口转发)。

相关内容