Mosh
我确实在(1)Mac OS X 10.9.5 机器、(2)Debian 8 VM 和(3)上安装了Entware-ng运行嵌入式 Linux 的路由器上的软件包。从 Mac (1) 到 (2) Debian 的 Mosh 连接是好的. 从 (1) Mac 到 (3) Linux 嵌入式路由器的 Mosh 连接失败消息如下:
/usr/local/bin/mosh:未找到 mosh 服务器启动消息。
环境:
- Mac 上的 Mosh 版本是 1.2.5。
- 所有机器都配置为使用证书进行 ssh 登录。
- Mac OS X shell 是 zsh。
/usr/local/bin
位于 Mac OS X 的 $PATH 中- Mac 终端应用程序iTerm 2.1.4
- Debian 8 在 10.x pvm_nat LAN 中运行:具有共享网络的并行虚拟机,Parallels 在同一台 Mac 上运行。
- 连接 Debian 所用的命令
$ mosh [email protected]
- 路由器 rt-n56u 使用有线 LAN 在 IP 192.168.x 上运行
- 从 Mac 连接到路由器的命令是:
$ mosh [email protected]
- Linux 路由器正在运行Padavan 固件 RT-N56U_3.4.3.9-099_base.trx
回归
- 我确实尝试过禁用 Mac 上的 Little Snitch 防火墙,但情况仍然没有任何改善:
/usr/local/bin/mosh: Did not find mosh server startup message.
- 我也尝试使用以下命令启动调试会话:
$ ssh -S none -o ProxyCommand='mosh --fake-proxy -- %h %p' -n -tt [email protected] -- 'mosh-server new'
MOSH IP 192.168.x.x
Connection to 192.168.x.x closed.
SendEnv
我在Mac上注释掉了:$ cat /etc/ssh_config | grep SendEnv
# SendEnv LANG LC_*
- 我尝试禁用路由器上的防火墙,但没有任何作用:
/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
在 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
如何修复mosh
从这台 Mac 到 rt-n56u 路由器的连接?
答案1
检查mosh-server
二进制文件在嵌入式 Linux 中的安装位置,并将该路径传递给命令server
中的选项mosh
。
假设mosh-server
二进制文件安装/usr/bin/
在嵌入式 Linux 的目录中,然后运行mosh
如下:
$ mosh --server=/usr/bin/mosh-server [email protected]
答案2
我希望这会有所帮助,这个问题也发生在我身上并出现同样的消息,我不是专家但我用这个方法解决了:
类似于您的配置(3)和(1),我的服务器正在运行 Ubuntu Server 18.04,而我的客户端是运行 Mojave 的 iMac。
在服务器上运行:
$ echo $LANG
en_US.UTF-8
然后搜索 mosh-server 路径,它位于
/usr/bin/mosh-server
在 Mac 上,将最后一行更改
/etc/ssh/ssh_config
为SendEnv LANG en_US.UTF-8
类似于之前的服务器输出。我用于 mosh 的命令如下,指示 mosh-server 路径和 ssh 端口:
$ mosh --server=/usr/bin/mosh-server [email protected] --ssh="ssh -p XXXX"
答案3
根据模拟调试 wiki 页面,你接下来应该做的是:
ssh -S none -o ProxyCommand='mosh --fake-proxy -- %h %p' -n -tt [email protected] -- 'mosh-server new'
看看它说了什么。
答案4
这个问题是 7 年前提出的,我希望从那时起所有 9k 名访问者现在已经找到了避免每次都进入 —服务器的方法。
这是我的:
mbj@m2 ~ % echo PATH=/opt/homebrew/bin:\$PATH >> ~/.zshenv