Ruby on rails 亚马逊EC2&x2B;卡皮斯特拉诺+;Git:权限被拒绝(公钥)
当我使用Capistrano将Rails应用程序部署到AmazonEC2服务器时,我得到Ruby on rails 亚马逊EC2&x2B;卡皮斯特拉诺+;Git:权限被拒绝(公钥),ruby-on-rails,git,amazon-ec2,key,capistrano,Ruby On Rails,Git,Amazon Ec2,Key,Capistrano,当我使用Capistrano将Rails应用程序部署到AmazonEC2服务器时,我得到 ** [IP.compute-1.amazonaws.com :: out] Permission denied (publickey). ** [IP.compute-1.amazonaws.com :: out] fatal: The remote end hung up unexpectedly 在执行 git clone 指挥部 我认为这与Github密钥有关,但我不知道如何设置它。 如果你能给
** [IP.compute-1.amazonaws.com :: out] Permission denied (publickey).
** [IP.compute-1.amazonaws.com :: out] fatal: The remote end hung up unexpectedly
在执行
git clone
指挥部
我认为这与Github密钥有关,但我不知道如何设置它。
如果你能给我提建议,我将不胜感激
谢谢
编辑:
我在Github上生成了新密钥,将其放入id\u rsa.pub中,并在我的EC2服务器上用该密钥创建了文件.ssh/authorized\u keys,但它仍然不起作用
有什么问题吗?您可以先通过SSH连接到EC2实例,然后使用安装在EC2实例上的SSH密钥从EC2实例克隆github repo吗 有了所有这些分布式工作流,事情可能会变得有点混乱,所以让我试着找出你做错了什么 您安装在Github上的id_rsa.pub与私钥相对应。通常,这是在
~/.ssh/id\u rsa
中。此密钥对允许私钥持有者通过ssh到github
.ssh/authorized_keys
是一种ssh服务器配置authorized_keys
包含公钥(即,id_rsa.pub
),使SSH服务器能够接受来自具有相应私钥的机器的传入连接。授权密钥
文件与您的克隆问题无关
EC2实例试图联系Github存储库以从Github克隆存储库,但失败。EC2实例需要配置一个私钥,以便与帐户的相应公钥(Github)匹配
在EC2实例上生成新密钥对,并将新密钥对中的公钥添加到Github帐户。要使用ssh代理:
ssh_options[:forward_agent] = true
要使用pem文件,请执行以下操作:
ssh_options[:auth_methods] = ["publickey"]
ssh_options[:keys] = ["/path/to/file.pem"]
要在本地服务器中启用代理,请执行以下操作:
$ ssh-add
您每次都必须执行此命令,我不知道“每次”的范围,我添加了ssh add以在每次使用echo ssh add>>~/.bashrc
在终端中打开新选项卡时运行,具体取决于您的操作系统和配置
据我所知,这个过程是这样的:
ssh
一样,您可以使用pem文件连接到正在部署的服务器,但这次是通过Capistrano请尝试
chmod 400 id\u rsa
。您能告诉我在哪里添加此ssh选项吗?在bashrc?中,我不记得了,我把这些选项放在了cap文件中,应该有包含ssh_选项的文件,可能在config/deploy.rb