一次只能处理一个PuTTY会话?

时间:2014-03-03 17:24:08

标签: ssh putty qnx

我使用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终端开放,而且一个糟糕的终端。我还能做些什么来隔离这个问题?

1 个答案:

答案 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是正常的。