1

我喜欢mosh,但我在通过两级 ssh 连接时遇到问题。考虑这种情况:

  • 运行 FreeBSD 的主机已关闭所有外部端口
  • 第一个从外部打开 ssh 端口 2222 的监狱位于公共 IP 上,比如说 door.example.com
  • 具有名为 DEV.example.com 的私有 IP 地址的第二个监狱,也可以从端口 2222 上的 door.example.com 进行 ssh-ed
  • 重定向设置为将 udp 端口​​ 60000 从 door.example.com 转发到 DEV.example.com

ttys 和 jails 通常存在一些问题,但我可以这样连接:

ssh -t -t -p2222 door.example.com -- ssh -p2222 DEV.example.com

之后被要求输入 door.example.com 和 DEV.example.com 的密码。

我已经尝试过这个 mosh 命令(也尝试了所有带和不带-t -t参数的变体):

mosh --port 60000 \
  --ssh "ssh -t -t -p2222" \
  --server "ssh -t -t -p2222 DEV.example.com mosh-server" \
  door.example.com

但我总是在没有密码提示的情况下对第二个监狱进行密码验证。

有趣的是,当我将 mosh 端口设置为 60000 并作为 mosh 服务器我填写时,从android mosh-flavored irssi connect bot这可以工作ssh -t -t -p2222 DEV.example.com mosh-server

我知道有一些方法可以设置 ssh 代理,但我不想在门监狱中使用 netcat 之类的东西。这应该以某种方式起作用,尤其是因为它已经可以在我的手机上使用。

4

1 回答 1

0

是否有理由mosh-server需要在终点(开发)而不是入口(门)?

我使用类似的东西:

mosh --port 60000 \
     --ssh "ssh -t -t -p2222" \
     -- door.example.com ssh -t -t -p2222 dev.example.com

对于我在家里的设置。

FWIW,我对 irssi 使用这样的东西:

mosh --ssh="ssh -p2222" \
     -- user@dmz.example.com ssh -q -t user@irssi.example.com \
                 screen -c /home/user/.screen.irc -UxaA irc

我的两台服务器都是 FreeBSD,客户端是 MacBook Air 或运行 Ubuntu 的笔记本电脑。我使用了带有基于主机的防火墙的 dmz 主机,以克服当前路由器上可用的有限转发。

于 2013-08-15T15:41:11.463 回答