什么是伪 TTY 分配? (SSH 和 Github)
Posted
技术标签:
【中文标题】什么是伪 TTY 分配? (SSH 和 Github)【英文标题】:What is Pseudo TTY-Allocation? (SSH and Github) 【发布时间】:2013-07-27 20:51:24 【问题描述】:我试图按照本教程设置与 Github 的 SSH 连接:
Testing your SSH connection我遇到了以下命令:
$ ssh -T git@github.com
# Attempts to ssh to github
很好奇,我查看了 ssh 手册。上面写着:
-T Disable pseudo-tty allocation.
什么是tty分配? tty 代表什么?我们为什么要禁用它?我认真地尝试查找它,但我什至找不到定义。
【问题讨论】:
可能和Pseudo terminals有关?还有,你googled pseudo tty-allocation的时候真的没发现有用吗? 谁知道伪终端与 tty 有任何关系。我实际上确实找到了该链接,但认为它与 tty 分配无关,呵呵。谢谢! 我正在设置 SSH 连接,我正在遵循相同的教程,我想这个 -T 选项是什么,出于好奇,我查看了 ssh 手册页,然后我有同样的问题你有! 【参考方案1】:如“gitolite: PTY allocation request failed on channel 0”中所述,使用-T
进行ssh 测试连接很重要,因为如果请求text-terminal (tty),某些服务器可能会完全中止事务。
-T
避免请求所述终端,因为 GitHub 无意为您提供交互式安全 shell,您可以在其中键入命令。
GitHub 只想回复您的 ssh 请求,以确定 ssh 命令是否有效(您拥有正确的公钥/私钥,并且公钥已注册到 your GitHub account)
PuTTy 是terminal emulator、serial console 和网络文件传输应用程序的示例。它支持多种网络协议,包括 SCP、SSH、Telnet 和 rlogin。
“PuTTY
”这个名字有no definitive meaning,虽然“tty”是Unix传统中终端的名字,通常是Teletype的缩写。
-T
的其他用例(测试除外)
Transferring binary files
Execute commands on a remote server
SSH隧道:ssh -fnT -L port:server:port user@server
(后台-f:你不想执行命令,不需要TTY,只想建立隧道)
【讨论】:
谢谢。 -T 是否仅用于测试连接,因为它避免分配 tty? @Tim 不,它在传输二进制文件 (serverfault.com/a/746638/783) 或在远程服务器上执行命令 (unix.stackexchange.com/a/88616/7490) 时很有用(禁用 tty)以上是关于什么是伪 TTY 分配? (SSH 和 Github)的主要内容,如果未能解决你的问题,请参考以下文章