Google Compute Engine公钥

时间:2015-07-24 22:55:54

标签: ssh virtual-machine bitbucket google-compute-engine

我已经在开发人员控制台中将我的公钥添加到我的项目的元数据中,当我进入Ubuntu VM实例时,我可以在文件~/.ssh/authorized_keys中看到我的公钥,但是当我尝试使用它时从Bitbucket克隆项目我收到错误Permission denied (publickey)

如果我ssh-add -l我得到The agent has no identities。在GCE实例上使用我现有的公钥时,我应该做些什么吗?

1 个答案:

答案 0 :(得分:2)

你正在混淆事物。有两个键,public和private(例如~/.ssh/id_rsa{,.pub})。您要在ssh / login上添加公钥,并将私钥存储在您想要ssh / login的计算机/计算机上。

如果您想使用密钥对从VM中的BitBucket进行克隆,则需要执行以下操作之一:

使用本地转发密钥

  • 在本地计算机上创建密钥对:ssh-keygen
  • 将公钥存储在BitBucket中
  • 将此密钥对添加到ssh代理中:ssh-add path/to/private/key
  • 使用代理转发进入VM ssh -K your-vm
  • 做你的克隆:git clone your-repo

使用单独的密钥对

  • ssh到您的VM:ssh your-vm
  • 在VM上创建密钥对:ssh-keygen
  • 将公钥存储在BitBucket中
  • 做你的克隆:git clone your-repo

如果您不想拥有许多密钥,那么第一个解决方案会更有用,如果没有您的参与(cron作业),将无法使用存储库进行操作。如果你想使用cron更新repo并在其上运行一些自动化,第二个更有帮助。