如何处理“通道0上的PTY分配请求失败”

时间:2010-10-02 04:30:20

标签: github ssh-keys

我无法看到为GitHub创建一个ssh密钥。我让它工作了很长一段时间,但我无法弄清楚发生了什么变化。我已经从我的GitHub帐户中删除了以前的SSH密钥。按照说明多次生成SSH密钥(http://help.github.com/mac-key-setup)并测试“ssh git@github.com”后,我得到以下内容;

  

PTY分配请求失败   通道0错误:嗨...成功   经过身份验证... GitHub没有   提供shell访问...连接到   github.com关闭。

我查看了troubleshooting guide,发现我的ssh目录没有配置文件。在创建它之后,我不确定在IdentityFile行上输入本地路径的内容或方法。在我的情况下,我甚至不确定这是否必要?

  

如果您的github身份验证   信息与您的信息不同   机器帐户信息,你会   需要修改你的ssh配置   文件。

     

创建或打开文件   〜/ .ssh / config添加以下行:

Host github.com
    User git
    Hostname github.com
    PreferredAuthentications publickey
    IdentityFile [local path to private key half of github public key you provided]
  

您可能还需要更新   您的.ssh文件夹和。的权限   它的内容。 SSH应用程序将   忽略那些秘密文件   许可。

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/*

我还运行了ssh -v git@github.com,结果可以在这里看到http://gist.github.com/607283与我能说的完全不同。

知道我做错了什么吗?

1 个答案:

答案 0 :(得分:35)

正如对该问题的评论中所描述的,“PTY分配请求失败”是关于GitHub身份验证的红色鲱鱼(这是因为当他们提供的唯一SSH服务为非时,尝试以交互方式登录GitHub的结果交互式Git-over-SSH;身份验证正在运行,他们只是不提供交互式“shell”服务。


提出问题的人在评论中写道:

  

我猜相关的问题是,当我尝试创建一个新的存储库和“git push origin master”时,我返回以下“错误:myemail@address.com/myapp的权限被拒绝到myusername。致命:远程端意外地挂了“

这似乎更可能是实际问题。这似乎表明名为origin的远程未配置为正确指向GitHub存储库。

检查git remote show -n origin的输出。可能“获取URL”和“推送URL”是相同的。他们应该看起来像这样:

git@github.com:git-user-name/repository-name

在网络上登录GitHub时,您可以使用您帐户的用户名或其关联的电子邮件地址。当推送到存储库(或从私有存储库获取)时,您必须使用您的实际用户名(电子邮件地址将不起作用)。它看起来你在那里使用你的电子邮件地址,而不仅仅是你的GitHub用户名。要解决此问题,请重新配置遥控器的URL:

git remote set-url origin git@github.com:github-username/repository-name

您登录后,您的用户名将显示在GitHub网页的许多位置。最简单的查找位置是您的重力曲目和页眉上的“信息中心”链接(如果您将看到剪影图标)没有配置gravatar)。同一位置链接到您的公开个人资料页面;此网页的网址也应以您的用户名结尾。