如何修复“未找到 mosh 服务器启动消息”。从 OS X 连接到 Linux 路由器时?

Pro*_*kup 7 networking linux router mosh macos

我确实安装Mosh在 (1) 一台 Mac OS X 10.9.5 机器上,(2) 一台 Debian 8 虚拟机,以及 (3) 作为运行嵌入式 Linux 的路由器上的Entware-ng包。从MAC(1)至(2)的Debian MOSH连接是OK。从 (1) Mac 到 (3) Linux 嵌入式路由器的 Mosh 连接失败并显示以下消息:

/usr/local/bin/mosh: 没有找到 mosh 服务器启动信息。

环境:

  • Mac 上的 Mosh 版本是 1.2.5。
  • 所有机器都配置为使用证书进行 ssh 登录。
  • Mac OS X 外壳是 zsh。
  • /usr/local/bin 位于 Mac OS X 的 $PATH 中
  • Mac 终端应用程序是iTerm 2 .1.4
  • Debian 8 在 10.x pvm_nat LAN 中运行:并行虚拟机与共享网络,Parallels 在同一台 Mac 上运行。
  • 用于连接到 Debian 的命令 $ mosh username@10.x.x.x
  • 路由器 rt-n56u 使用有线 LAN 在 IP 192.168.x 上运行
  • 从 Mac 连接到路由器的命令是: $ mosh username@192.168.x.x
  • Linux 路由器正在运行Padavan 固件 RT-N56U_3.4.3.9-099_base.trx

回归

  1. 我确实尝试在 Mac 上禁用 Little Snitch 防火墙,但没有任何改进,但仍然:
    /usr/local/bin/mosh: Did not find mosh server startup message.
  2. 我也尝试使用以下方法启动调试会话:
    $ ssh -S none -o ProxyCommand='mosh --fake-proxy -- %h %p' -n -tt user@192.168.x.x -- 'mosh-server new'
    MOSH IP 192.168.x.x
    Connection to 192.168.x.x closed.
  3. SendEnv在 Mac 上注释掉了:
    $ cat /etc/ssh_config | grep SendEnv
    # SendEnv LANG LC_*
  4. 我试图禁用路由器上的防火墙,这没有任何区别:
    /usr/local/bin/mosh: Did not find mosh server startup message.

rt-n56u 日志显示:

May  3 00:42:15 dropbear[819]: Child connection from 192.168.x.y:50824
May  3 00:42:17 dropbear[819]: Pubkey auth succeeded for 'username' with key md5 2c:...:94 from 192.168.x.y:50824
May  3 00:42:18 dropbear[820]: ioctl(TIOCSCTTY): Input/output error
May  3 00:42:18 dropbear[820]: /dev/pts/0: No such file or directory
May  3 00:42:18 dropbear[820]: open /dev/tty failed - could not set controlling tty: No such device or address
May  3 00:42:18 dropbear[819]: Exit (username): Disconnect received
Run Code Online (Sandbox Code Playgroud)

在 rt-n56u 上:

# ls -l /dev/pts/*
crw--w--w-    1 username   root      136,   0 May  3 00:45 /dev/pts/0
# ls -l /dev/tty
crw-rw----    1 username   root        5,   0 Jan  1  2015 /dev/tty
Run Code Online (Sandbox Code Playgroud)

可以做些什么来修复mosh从这台 Mac 到 rt-n56u 路由器的连接?

jgo*_*mo3 4

检查mosh-server二进制文件在嵌入式 Linux 中的安装位置,并将该路径传递给命令server中的选项mosh

假设mosh-server二进制文件安装在/usr/bin/嵌入式 Linux 的目录中,然后运行mosh如下:

$ mosh --server=/usr/bin/mosh-server username@192.168.x.x
Run Code Online (Sandbox Code Playgroud)