8

我可以从我的 VPS 很好地推送到我的 GitHub 存储库,但是一旦我进入一个屏幕,我就会被拒绝:

littke@[server]:~/src/[repo]$ git push
Pushing to git@github.com:littke/[repo].git
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

即使我能够验证:

littke@[server}:~/src/[repo]$ ssh git@github.com -i ~/.ssh/littke 
Enter passphrase for key '/home/littke/.ssh/littke':
PTY allocation request failed on channel 0
Hi littke! You've successfully authenticated, but GitHub does not provide shell access.

同样,这只发生在 GNU Screen 内。我可以很好地推开它。我用谷歌搜索但找不到任何东西。

4

3 回答 3

4

您在 ssh(-i 选项)中使用的身份文件与 git 使用的身份文件不同。你必须通过你的配置告诉 git 使用哪个身份。请参阅 github 的SSH 问题疑难解答,“SSH 配置”部分:

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

Host github.com
  User git
  Hostname github.com
  PreferredAuthentications publickey
  IdentityFile [local path]
于 2011-05-13T08:11:33.957 回答
3

-i正在强制 ssh 使用不同的密钥。当您尝试使用 git 时,ssh 不知道该密钥。尝试使用默认密钥名称,或者ssh-add让 ssh 知道的密钥。

于 2011-05-13T08:00:45.763 回答
2

需要设置一些额外的位以使 SSH 代理转发在屏幕中工作。看看如何让屏幕在重新连接到现有屏幕时自动连接到当前的 ssh-agent?有关这方面的详细信息。

于 2011-09-15T17:51:41.830 回答