ssh 连接将控制键显示为 ^P 或 ^A

问题描述

当我按下 ctrl-p 时,它显示^P 而不是调用一个输入行。所有其他 readline 控制键(如 ctrl-a(行首))也是如此。我使用的所有内置 readline 功能的工具都会发生这种情况。在没有 ssh 的情况下运行工具,效果很好。

ssh server1 dc_shell     // BAD  ctrl-p is displayed as ^P
dc_shell                 // OK   ctrl-p recalls last line
ssh server1              // OK! I get a bash shell where ctrl-p recalls last line

解决方法

使用 -t ssh 选项(强制伪终端分配):

ssh server1 -t dc_shell

或将 RequestTTY=yes 添加到 ~/.ssh/config