好吧,我对某些事感到困惑......我能够很好地提交到我的github存储库,但是当我尝试从我的本地文件夹到我的临时服务器执行cap deploy
时,我得到{{ 1}}
如果我运行Permission denied (publickey).
,我实际上会收到错误ssh git@github.com
所以这里有些错误。
如果我运行PTY allocation request failed on channel 0
,我会:
ssh -vT git@github.com
我的密钥位于〜/ .ssh文件夹中,所以问题是什么,为什么我能够在存在密钥问题时提交到存储库?
更新 当我进入我的.ssh文件夹时,我注意到了一些事情。当我安装Github for Mac时创建了一个新的密钥对...为什么它不能只使用我不知道的现有密钥对。
答案 0 :(得分:112)
我必须做以下事情:
$ ssh-add -D #remove existing identities
$ ssh-agent #copy the lines & run them
$ ssh-add #uses the output from above
答案 1 :(得分:30)
我有时会收到此错误,我只需输入$ ssh-add -k
即可添加我的身份,然后就可以了。不确定为什么这样做或为什么错误信息没有建议,但它总是在拯救!
答案 2 :(得分:18)
我会确保您的登台服务器具有对github的ssh访问权限。通过登台服务器上的终端运行相同的命令“ssh -vT git@github.com”;这将有助于确定它是否是远程计算机上的ssh问题。
答案 3 :(得分:2)
我在为Mac OS X安装GitHub后遇到了同样的问题。该应用程序在〜/ .ssh / github_rsa中创建了一个新的ssh私钥,并将其添加到ssh身份验证代理中。
检查ssh auth代理缓存了哪个密钥:
$ ssh-add -l
2048 63:0c:a6:51:63:c1:35:76:5d:02:77:97:39:48:0e:4a /Users/jiangxin/.ssh/github_rsa (RSA)
每当您连接到github.com或其他ssh服务时,首先使用此密钥。
使用以下命令从ssh-agent清除缓存的密钥:
$ ssh-add -D
现在ssh客户端应该正常工作,使用〜/ .ssh / config或〜/ .ssh / id_rsa中定义的密钥。
答案 4 :(得分:1)
如果您使用MAC。也许您的ssh密钥未添加到身份验证代理中。以下命令将执行该操作
ssh-add path_to_private_key
例如
ssh-add ~/.ssh/id_rsa
答案 5 :(得分:0)
错误是因为,ssh-add不知道如何与身份验证代理进行通信。 可以通过设置SSH_AUTH_SOCK环境变量来解决该问题。
如果你运行ssh-agent,你应该得到一些像这样的输出:
SSH_AUTH_SOCK=/tmp/ssh-agVZL13989/agent.13989; export SSH_AUTH_SOCK;
SSH_AGENT_PID=13990; export SSH_AGENT_PID;
echo Agent pid 13990;SSH_AUTH_SOCK=/tmp/ssh-agVZL13989/agent.13989; export SSH_AUTH_SOCK;
SSH_AGENT_PID=13990; export SSH_AGENT_PID;
echo Agent pid 13990;
执行此操作:
eval $(ssh-agent)
然后:
ssh-add -D