我正在尝试从 Unix(具体来说,Mac OS X)笔记本电脑远程登录到运行 Windows Server 2008 R2 的服务器,但遇到了一些问题。连接成功建立,但我无法使用箭头键退格或循环查看命令历史记录。我也无法向上滚动,但我很确定这是客户端问题。如果我错了,请纠正我。
$ telnet -l 'MYDOMAIN\me' x.x.x.x
Trying x.x.x.x...
Connected to x.x.x.x.
Escape character is '^]'.
Welcome to Microsoft Telnet Service
password: ******
*===============================================================
Microsoft Telnet Server.
*===============================================================
C:\Users\me>
退格键不执行任何操作,但^H
仍会发送清除命令,因此情况并没有想象的那么糟糕。不过,让我困惑的是:在 OSX 的 Terminal.app 中,我将退格键设置为发送到^H
。但实际上,无论我如何配置,清除命令都会在 和 上发生^H
,^?
因此显然这里还发生了一些我不明白的事情。
我也尝试使用我的 telnet 客户端send
命令发送密钥代码 127,但没有成功。不过 Windows telnet 客户端工作正常,所以我的下一步行动是从 Windows 远程登录到一个简单的原始 TCP 套接字服务器,这样我就可以尝试弄清楚它发送了什么。不过,直到下周某个时候我才能使用必要的设备,所以我想我会在此期间发布这篇文章。
对于你们所有讨厌 telnet 的人:是的,我知道 telnet 是一场安全噩梦,通常很糟糕,我不应该使用它,但不幸的是这不是我能决定的,我们当地的系统管理员太挑剔了。为什么她可以接受 telnet 而不能接受 SSH,以及这种偏好是否合理,我真的说不出来。关键是,遗憾的是,Windows 上的 SSH 不是一个选项。
答案1
您可能需要使用终端 --> 首选项 --> 设置 --> 高级 -->(取消)选中删除发送 Control-H 来调整终端设置
要排除故障并查看 Backspace 实际发送的内容,请通过以下方式在 Telnet 中启用网络数据调试:
- 远程登录
- 设置网络数据
- o
- [Windows 服务器名称或 IP]
现在,所有发送的字符(来回发送)都将以 ASCII 值显示在屏幕上。看看 Backspace(和其他)会给你带来什么。