如何解决Ruby on Rails在Amazon EC2使用Capistrano Git时遇到的publickey权限拒绝问题?

更新于
2026-10-09 21:20:47
2阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计640个文字,预计阅读时间需要3分钟。

如何解决Ruby on Rails在Amazon EC2使用Capistrano Git时遇到的publickey权限拒绝问题?

当使用Capistrano将Rails应用程序部署到Amazon EC2服务器时,遇到以下错误:

** [IP.compute-1.amazonaws.com:out] Permission denied (publickey).** [IP.compute-1.amazonaws.com:out] fatal: The remote end hung up unexpectedly执行失败

这可能是因为SSH密钥认证出现问题。以下是可能的解决方案:

1. 确保在本地机器上生成了SSH密钥对(如果还没有的话)。

2.将公钥添加到EC2实例的SSH密钥对中。

3.确保SSH客户端配置正确,并指定了正确的私钥文件。

4.检查EC2实例的安全组设置,确保允许SSH连接。

具体步骤如下:

1. 在本地机器上生成SSH密钥对(如果还没有的话):

bash

ssh-keygen -t rsa -b 4096

2. 将公钥添加到EC2实例的SSH密钥对中:

bashssh-copy-id -i ~/.ssh/id_rsa.pub ec2-user@IP.compute-1.amazonaws.com

3. 确保SSH客户端配置正确,并指定了正确的私钥文件:

bashssh -i ~/.ssh/id_rsa ec2-user@IP.compute-1.amazonaws.com

4. 检查EC2实例的安全组设置,确保允许SSH连接:

- 登录到AWS管理控制台。- 在左侧导航栏中,选择EC2。- 在实例部分,找到您的EC2实例。- 在实例详情页面中,选择网络和安全选项卡。- 在安全组部分,找到并编辑您的安全组。- 确保安全组中允许SSH(端口22)的入站规则。

当我使用Capistrano将Rails应用程序部署到Amazon EC2服务器时,我明白了

** [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_rsa.pub并在我的EC2服务器上使用此密钥创建了文件.ss​​h / authorized_keys,但它仍然无效.

这有什么问题?

要使用ssh代理:

ssh_options[:forward_agent] = true

要使用你的pem文件:

ssh_options[:auth_methods] = ["publickey"] ssh_options[:keys] = ["/path/to/file.pem"]

在本地启用代理

如何解决Ruby on Rails在Amazon EC2使用Capistrano Git时遇到的publickey权限拒绝问题?

$ssh-add

你每次都要执行这个命令,我不知道’每次’的范围,我每次在终端上用echo ssh-add>>打开一个新选项卡时都添加了ssh-add. 〜/ .bashrc,具体取决于您的操作系统和配置.

据我所知,这个过程是这样的:

>您在当地有一个ssh-agent>您使用pem文件连接到正在部署的服务器,就像使用ssh一样,但这次是通过Capistrano>远程服务器使用您的代理使用您的密钥来检查部署机器内的git repo.

本文共计640个文字,预计阅读时间需要3分钟。

如何解决Ruby on Rails在Amazon EC2使用Capistrano Git时遇到的publickey权限拒绝问题?

当使用Capistrano将Rails应用程序部署到Amazon EC2服务器时,遇到以下错误:

** [IP.compute-1.amazonaws.com:out] Permission denied (publickey).** [IP.compute-1.amazonaws.com:out] fatal: The remote end hung up unexpectedly执行失败

这可能是因为SSH密钥认证出现问题。以下是可能的解决方案:

1. 确保在本地机器上生成了SSH密钥对(如果还没有的话)。

2.将公钥添加到EC2实例的SSH密钥对中。

3.确保SSH客户端配置正确,并指定了正确的私钥文件。

4.检查EC2实例的安全组设置,确保允许SSH连接。

具体步骤如下:

1. 在本地机器上生成SSH密钥对(如果还没有的话):

bash

ssh-keygen -t rsa -b 4096

2. 将公钥添加到EC2实例的SSH密钥对中:

bashssh-copy-id -i ~/.ssh/id_rsa.pub ec2-user@IP.compute-1.amazonaws.com

3. 确保SSH客户端配置正确,并指定了正确的私钥文件:

bashssh -i ~/.ssh/id_rsa ec2-user@IP.compute-1.amazonaws.com

4. 检查EC2实例的安全组设置,确保允许SSH连接:

- 登录到AWS管理控制台。- 在左侧导航栏中,选择EC2。- 在实例部分,找到您的EC2实例。- 在实例详情页面中,选择网络和安全选项卡。- 在安全组部分,找到并编辑您的安全组。- 确保安全组中允许SSH(端口22)的入站规则。

当我使用Capistrano将Rails应用程序部署到Amazon EC2服务器时,我明白了

** [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_rsa.pub并在我的EC2服务器上使用此密钥创建了文件.ss​​h / authorized_keys,但它仍然无效.

这有什么问题?

要使用ssh代理:

ssh_options[:forward_agent] = true

要使用你的pem文件:

ssh_options[:auth_methods] = ["publickey"] ssh_options[:keys] = ["/path/to/file.pem"]

在本地启用代理

如何解决Ruby on Rails在Amazon EC2使用Capistrano Git时遇到的publickey权限拒绝问题?

$ssh-add

你每次都要执行这个命令,我不知道’每次’的范围,我每次在终端上用echo ssh-add>>打开一个新选项卡时都添加了ssh-add. 〜/ .bashrc,具体取决于您的操作系统和配置.

据我所知,这个过程是这样的:

>您在当地有一个ssh-agent>您使用pem文件连接到正在部署的服务器,就像使用ssh一样,但这次是通过Capistrano>远程服务器使用您的代理使用您的密钥来检查部署机器内的git repo.