这是我的设置。
- 我的 git 存储库位于 bitbucket
- 我已经在远程 aws ec2 服务器上创建了密钥并将其保存在
~/.ssh
文件夹中 - 然后我通过远程服务器上的 ssh-agent 添加密钥
- 在 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
。