我使用PuTTY会话通过TCP / IP上的SSH与运行QNX 6.4.1的嵌入式设备通信。
今天,我的一个系统神秘地不允许我一次打开多个PuTTY会话。如果我尝试开始第二个会话,我可以使用用户名和密码进行身份验证,但是横幅上的标志打印出来,每行之间有一个额外的空白行,并且我可以点击输入。除了Control-C或关闭PuTTY窗口之外,我什么也看不到任何远程有效的东西。
我怀疑包含横幅的文本文件有坏行 结局,但事实并非如此。
我怀疑终端设置问题,但如果我有一个会话打开它 作品。没有更改设置,只是尝试打开第二个会话 没有。
我想知道.profile
是否会被破坏,但事实并非如此
似乎也属于这种情况。
现在我很想“也许ssh搞砸了,重新启动会修复 它?“但是我对重新启动它犹豫不决,因为如果我们失去了TCP / IP 连接到它,这是几个小时的工作(体力劳动) 恢复。
对于出了什么问题以及如何解决问题的想法?
我正在使用64位Windows 7的PuTTY 0.62连接到QNX 6.4.1。 openssh / openssl版本很现代。
更新
问题几天后又回来了。使用下面的Guntram Blohm的建议,我至少能够通过“在阅读横幅后按下输入”屏幕。然后我按照他的建议跑了stty sane ctrl-j
。以下是stty
的输出:
stty sane ctrl-j
之后不好(并将其重新格式化为可读)
Name: /dev/ttyp1
Type: pseudo
Opens: 3
+raw +echo
+osflow
intr=^C quit=^\ erase=^? kill=^U eof=^D start=^Q stop=^S susp=^Z
lnext=^V min=01 time=00 pr1=^[ pr2=5B left=44 right=43 up=41
down=42 ins=40 del=50 home=48 end=59
然后我立即打开了另一个PuTTY会话,它运行正常。这让我感到困惑,有时它是如何工作的,而不是其他人的工作。怎么会发生这种情况?有什么不同?
不可
Name: /dev/ttyp2
Type: pseudo
Opens: 2
+edit
+osflow
intr=^C quit=^\ erase=^? kill=^U eof=^D start=^Q stop=^S susp=^Z
lnext=^V min=01 time=00 pr1=^[ pr2=5B left=44 right=43 up=41
down=42 ins=40 del=50 home=48 end=59
所以现在我有一个很好的PuTTY终端开放,而且一个糟糕的终端。我还能做些什么来隔离这个问题?
答案 0 :(得分:1)
这可能是另一个使用伪终端的进程,将其置于特殊状态,然后在没有恢复状态的情况下崩溃。 vi浮现在脑海中,或者可能是文件上传/下载程序。这些程序改变终端模式以指示性地读取每个字符,而不是逐行读取,并调整其他一些东西。通常,注销/返回应该修复,但我不确定QNX是否正确处理它。
你可以做的一件事就是将工作终端的参数复制到混乱的一个是stty -g,然后将该输出粘贴到坏的命令行。像这样(在Linux上,我目前没有QNX):
(在良好的终端上)
gbl@bermuda$ stty -g
500:5:bf:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
(关于坏人)
gbl@bermuda$ stty 500:5:bf:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
这些终端模式保留在每个伪tty设备上,这就是为什么你的/dev/ttyp1
可能搞砸了,而为下一个ssh连接分配的/dev/ttyp2
是正常的。