这是我第一次使用 Git,我正在尝试在我的机器上进行设置。我在 Github 网络界面中将我的密钥添加到我的个人资料中。当我尝试连接时...:
max@linux-vwzy:~> ssh [email protected]
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is xx
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts.
PTY allocation request failed on channel 0
max@linux-vwzy:~> ssh-add ~/.ssh/id_rsa
Identity added: /home/max/.ssh/id_rsa (/home/max/.ssh/id_rsa)
max@linux-vwzy:~> ssh [email protected]
PTY allocation request failed on channel 0
我本应收到某种欢迎信息然而我却没有收到。
答案1
当你在正常的终端环境中运行时,你的 SSH 客户端(ssh [email protected]
远程控制本地计算机上的进程)将向服务器请求伪终端 (pty)。
GitHub 一直拒绝 pty 分配。
OpenSSH 的旧版本(5.6 之前)远程控制如果服务器拒绝其 pty 分配请求,将“回退”到无 pty 模式。
OpenSSH 的较新版本(5.6 至 5.8)远程控制如果服务器拒绝其 pty 分配请求,则中止。
OpenSSH 的最新版本(5.9 及更高版本)远程控制如果 pty 分配是自动完成的,则将采取前一种操作(继续),如果有对 pty 的明确请求(-t
给定或RequestTTY
等于yes
/ force
),则将采取后一种操作(中止)。
你可以告诉远程控制(旧的或新的)以避免使用以下选项请求 pty 分配-T
:
ssh -T [email protected]
然后你应该会看到 GitHub 消息:
您好,<用户名>!您已成功验证,但 GitHub 不提供 shell 访问权限。
- 当 pty 分配请求失败时终止通道。修复了服务器拒绝 pty 分配时客户端卡住的问题 (bz#1698)
bz#1698
似乎是指报告记录在“便携式 OpenSSH” Bugzilla 中。
来自OpenSSH clientloop.c 修订版 1.234:
改进 TTY 分配失败时的行为:如果我们处于 RequestTTY=auto 模式(默认),则不要将 TTY 分配错误视为致命错误,而只是将本地 TTY 恢复为熟模式并继续。这对于从不分配 TTY 的设备来说更为优雅。
如果将 RequestTTY 设置为“yes”或“force”,那么分配 TTY 失败将是致命的。