【问题标题】:Only one PuTTY session working at a time?一次只能工作一个 PuTTY 会话?
【发布时间】:2014-03-03 17:24:08
【问题描述】:

我使用 PuTTY 会话通过 TCP/IP 上的 SSH 与运行 QNX 6.4.1 的嵌入式设备通信。

今天,我的一个系统神秘地不允许我一次打开多个 PuTTY 会话。如果我尝试开始第二个会话,我可以使用用户名和密码进行身份验证,但是登录横幅会在每行之间打印出一个额外的空白行,并且会影响我按 Enter 的能力。除了 Control-C 或关闭 PuTTY 窗口之外,我无法执行任何看起来远程有效的操作。

  • 我怀疑包含横幅的文本文件有坏行 结局,但它没有。

  • 我怀疑终端设置有问题,但如果我有一个会话打开它 作品。没有更改设置,只是尝试打开第二个会话 没有。

  • 我想知道.profile 是否被破坏了,但事实并非如此 似乎也是这样。

  • 现在我只能说“也许 ssh 搞砸了,重新启动会解决 吗?”但我很犹豫是否要重新启动它,因为如果我们丢失了 TCP/IP 连接到它,这是几个小时的工作(体力劳动) 恢复。

关于出了什么问题以及如何解决它有什么想法吗?

我正在使用 PuTTY 0.62 从 64 位 Windows 7 连接到 QNX 6.4.1。 openssh/openssl 版本是现代的。

更新

几天后问题又出现了。使用下面 Guntram Blohm 的建议,我至少能够通过“阅读横幅后按 Enter”屏幕。然后我按照他的建议运行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 终端,一个坏的终端。我还能做些什么来隔离这个问题?

【问题讨论】:

  • 您可以尝试在该终端窗口的命令提示符处输入stty sane <ctrl-j>。您的终端设置(不是腻子设置,设备上终端驱动程序的设置!)似乎搞砸了;在这种情况下,回车键可能会被解释为 \r 而不是 \n,但 ctrl-j 应该可以工作。
  • @GuntramBlohm 感谢您的提示。我不知道发生了什么变化,但是当我从实验室回来时,它又起作用了。我不喜欢在我不理解原因的情况下自行解决的问题。如果/当它再次发生时,我会尝试你的建议。谢谢!
  • @GuntramBlohm 问题又回来了。您的 control-j 提示非常棒。我跑了stty sane ctrl-j,现在我可以真正使用我的回车键了。它不能解决所有问题,但它至少可以让我发挥作用。我仍然不知道事情是如何变得如此混乱的,但他们显然做到了。在我重新启动设备之前,我还能做些什么来诊断这个问题吗?

标签: ssh putty qnx


【解决方案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 是可以的。

【讨论】:

  • 所以,如果我理解正确的话,上次碰巧在/dev/ttyp1 登录的人让它处于错误状态,而我只是在连接时碰巧得到了那个。这就是为什么我可以启动两个终端,一个工作一个不工作。另请注意,您的 stty -g 技巧效果很好。把它修好了。我认为重新启动会解决它,但我想了解这个问题。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多