我在工作时有两台机器,一台笔记本电脑和一台台式机。
两者都是 Ubuntu。两者都已同步 .ssh 文件夹,包括 RSA 密钥。在两者上,我都可以成功 ssh 到我们的 EC2 实例,并通过终端在 EC2 实例内工作,运行 python 等...
除了 git 的使用。在塔上,git pull
我的 repo 工作正常。在笔记本电脑上,git pull
同一个 repo 上显示权限被拒绝。在这两种情况下,我都成功登录到同一个 EC2 实例并在终端窗口中工作。可能有什么区别导致我出现权限错误?
一种可能性是,我的笔记本电脑通过 VPN 运行,而塔台通过以太网运行。(我们的存储库存储在私有 bitbucket 中,而不是 github 中。)即使我已成功登录 EC2 实例并在终端中工作,这仍然会有所不同吗?即使在 EC2 内部,git 是否也能以某种方式读取我通过 VPN 访问,并拒绝我的权限?
答案1
如果你通过 SSH 进行拉取,并且习惯ssh-agent
在笔记本电脑或塔式机(或两者)上管理密钥,则可能是由于SSH 代理转发:
SSH 代理转发可用于简化服务器部署。它允许您使用本地 SSH 密钥,而不必将密钥(无密码!)留在服务器上。
即使.ssh
笔记本电脑和台式机上的文件夹相同,代理也可能会在其中一个电脑上存储一组不同的密钥。
ssh-add -L
应该列出代理当前存储的密钥。如果您用于存储库的密钥在一台计算机上列出,但在另一台计算机上没有列出(或者另一台计算机根本没有运行 ssh-agent),那么问题就出在这里。