![检索私有 SSH 密钥](https://linux22.com/image/663608/%E6%A3%80%E7%B4%A2%E7%A7%81%E6%9C%89%20SSH%20%E5%AF%86%E9%92%A5%20.png)
我如何检索私钥以便可以部署到我的服务器?(我正在尝试使用 cloud66 部署到您自己的服务器选项,它要求输入私钥)
跑步
cat ~/.ssh/id_rsa
在我的本地机器上给了我一个私钥,但它没有被接受。
cat ~/.ssh/id_rsa.pub
显示公钥,我可以看到该公钥已分配给我在数字海洋上的服务器。
答案1
您不应该上传您的私钥。永远不要这样做。
仅使用您的公钥。如果您将公钥提供给 Digital Ocean 或 Cloud66(无论它们是什么),您应该能够从任何拥有私钥的机器登录。远程服务器无需知道您的私钥。
这里有一个关于 SSH 密钥认证如何工作的很好的教程:http://www.cyberciti.biz/tips/ssh-public-key-based-authentication-how-to.html
编辑看起来 Cloud66 是一些 Dockery/PaaSy 解决方案,它使用 SSH 与服务器通信。他们在这里有一些关于如何设置 SSH 密钥的文档:http://community.cloud66.com/articles/setting-up-ssh-keys。不清楚这些密钥的用途,有提到不支持密码保护的密钥,我认为这很奇怪。文档的其余部分看起来像一个非常正常的公钥设置,尽管有一些奇怪的命令。不过,没有提到必须在某处输入私钥。
我仍然认为采用 cyberciti 教程是最好的方法。
答案2
您无法检索私钥,您要么有,要么没有。您可以使用以下方法从私钥检索公钥:
ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
请注意,该命令将覆盖您现有的密钥,因此您可能需要保存它或选择不同的输出文件。然后,您可以将检索到的密钥与您已有的密钥进行比较,如果它们不同,请采取适当的措施。
如果它们相同,那么您可能需要告诉我们您看到的确切错误。
答案3
听起来你描述的是上传私钥的流程提供对 Ubuntu 服务器的 ssh 访问,你管理。通常,这意味着您将在该服务器上创建一个用户帐户,并限制其权限(通过 sudo)来执行仅有的您希望 Cloud 66 自动执行的活动。然后为那用户帐户(其他答案中描述的命令,例如 Iain 的命令)。
粘贴普通用户的私钥听起来像是安全链中的一个大漏洞。Cloud 66 对此没有明确说明,因此不予采纳。
Cloud 66 与 Digital Ocean 讨论云部署,但通常使用 OAuth 进行身份验证以及API方法来控制它们。
在不知道您的具体设置的情况下,很难确定,但听起来您正试图使用第一种方法 (ssh),而您应该使用第二种方法 (OAuth/API)。如果失败了,您可能躲过了一劫。