git pull over ssh 给出奇怪的错误

git pull over ssh 给出奇怪的错误

这是我的设置。

  1. 我的 git 存储库位于 bitbucket
  2. 我已经在远程 aws ec2 服务器上创建了密钥并将其保存在~/.ssh文件夹中
  3. 然后我通过远程服务器上的 ssh-agent 添加密钥
  4. 在 bitbucket 网站上更新了这些密钥。

当我登录到我的远程服务器并git pull在我的 git 存储库上运行时,一切都运行正常。这里没有问题。

但是当我通过 Windows 上的 cygwin bash 运行相同程序时,出现了这个错误:

Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

我在 Windows 机器上执行以下操作

ssh -i xyz.pem user@ip -t 'sudo sh deploy.sh'

其中deploy.sh光碟进入我的存储库并执行git pull

为什么会发生此问题?我是否也应该将这些 ssh 密钥保存在我的 Windows 机器上? 任何帮助都是无价的。

答案1

sh通过运行sudo,您实际上是在利用 root 的.ssh凭据来访问存储库。这些凭据与您生成并添加到 bitbucket 的密钥不匹配。

sudo我想知道你为什么首先需要,repo 是否只能由 root 写入?一种选择是将 root 的 ssh 密钥添加到 bitbucket,或者避免使用sudo

相关内容