这个问题与其他人的问题不一样,他们问的是他们无法连接到服务器,我遇到的问题是我无法启动更多新的 ssh 连接...
现在我使用 ssh 连接到远程服务器,但是当我尝试启动新的 ssh 连接时,服务器拒绝分配 pty,为什么会发生这种情况?是否有任何限制来限制连接到服务器的 ssh 数量?
您可以看到当我尝试使用以下链接打开新的 ssh 连接时发生的情况: http://i1271.photobucket.com/albums/jj624/bigmeowOoO/refuse_to_connect_allocate_pty.jpg
顺便说一句,我不认为 pty 文件有什么问题,因为我可以连接到服务器:)
另外,我想知道这些文件代表什么?
ls /dev/pts
0 11 13 15 17 19 20 22 24 26 28 3 31 4 6 8
1 12 14 16 18 2 21 23 25 27 29 30 32 5 7 9
文件 /dev/pts/0 /dev/pts/0:字符特殊(136/0)
字符特殊,它的作用是什么?
答案1
首先,由于您可以通过 ssh 连接,因此您可以选择不使用 -T 参数通过 ssh 创建新的 PTY(此参数禁用创建伪终端)。如果您使用 PuTTY,请在 SSH 树下选中“不分配伪终端”。
主机可能设置了 PTY 的限制。
如果您在 OpenVZ 服务器上,您可以通过访问 beancounter 文件来检查管理员是否设置了 PTY 限制。
cat /proc/user_beancounters
寻找numpty 的行。将有 # held、limit(您可能正在寻找)的列。如果您的限制低于 5,则不合理,因为您将无法运行许多脚本,尤其是在使用屏幕时。您可以请求增加。
/dev/pts 下列出的每个文件都是伪终端。它们是“假”终端会话。
请阅读此处了解简要概述:http://en.wikipedia.org/wiki/Pseudo_terminal 和http://www.gnu.org/software/libc/manual/html_node/Pseudo_002dTerminals.html
答案2
伪终端是一对提供双向通信通道的虚拟字符设备。通道的一端称为主端,另一端称为从端。伪终端的从端提供的接口与传统终端的行为完全一样。需要连接到终端的进程可以打开伪终端的从端,然后由打开主端的程序驱动。主端上写入的任何内容都会提供给从端上的进程,就像在终端上键入的输入一样。
ssh、screen、expect、telnet 等服务使用 pty(伪终端)
只需运行以下命令即可列出/显示 Linux 下的最大伪终端数量
猫/ proc / sys /内核/ pty / max
4096