我正在尝试通过 SSH/Telnet 连接到我的家用路由器(合勤 P-2812HNU-F1)。
我知道路由器主机和 IP 地址。还有管理员登录凭据。
我已将 ssh 设置为端口2222
,并将 telnet 设置为2323
。
当我通过 Mac OS X 终端 SSH 时,它连接了,但终端显示:
No entry for terminal type `vt220`; using dumb terminal settings.
ZySH>
当我输入例如“?”时,它会显示以下内容:
No entry for terminal type "vt100";
using dumb terminal settings.
ZySH>
clear - Reset functions
configure - Enter configuration mode
copy - Copy from one file to another
disable - Exit privileged EXEC mode
exit - Close an active terminal session
history - Display or clear CLI history
reboot - Shutdown and perform a cold restart
release - Perform an immediate release of a Dynamic Host Configuration Protocol (D
HCP) lease for an interface
renew - Perform an immediate renewal of a Dynamic Host Configuration Protocol (D
HCP) lease for an interface
show - Show running system information
traffic-mirror - <N/A>
ZySH>
它对以下终端类型执行相同的操作:-linux -vt100 -vt102 -xterm -xterm-256color
我正在处理什么问题以及解决这个问题的可能性有多大?
答案1
错误消息仅表示您的路由器不知道您正在使用的终端类型。*Nix 系统已知的终端类型列表保存在 中/usr/share/terminfo
,有几百种。
您可以尝试全部尝试来解决您的小问题,看看您的路由器是否真的配置了特定的终端,因为您上面链接的说明对此没有任何说明。
以下一行代码即可完成此操作:
find /usr/share/terminfo -type f -exec sh -c 'echo basename {} && TERM=$(basename {}) ssh me@remote echo $TERM' \;
这将首先搜索系统已知的所有终端类型(在 /usr/share/terminfo 中;如果列表在其他地方,如 termcap,请相应调整),然后打印刚刚找到的术语类型并尝试使用刚刚找到的术语类型作为 TERM 类型通过 ssh 进入路由器 (me@remote),然后echo $TERM
在远程系统上执行。当您找到两个输出匹配的行时,您将找到路由器的 termcap 功能。
当然,如果您在远程系统上设置了无密码登录,则效果会最好。
答案2
做:导出 TERM=vt100 在 Mac-OSX 中;导出TERM=vt100; ssh[电子邮件保护]。基本上,当您从 Mac 进行 ssh 时,客户端 Mac-ssh 软件会根据您的 shell 的环境变量决定使用哪些终端设置,而 Zyxel 无法识别 Mac-OSX 正在使用或要求其使用的内容。在 Zyxel 命令提示符上输入 vt100 是无用的,因为这是在连接时协商的。