Ruby on Rails部署到EC2,Capistrano Git权限拒绝,如何解决publickey问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计473个文字,预计阅读时间需要2分钟。
在将Rails应用部署到Amazon EC2服务器时,遇到权限问题提示Permission denied (publickey),以及远程端意外挂起的情况。以下是简化后的解决步骤:
1. 确保在本地电脑上生成了SSH密钥对。
2.将公钥添加到EC2实例的`~/.ssh/authorized_keys`文件中。
3.使用正确的用户名和私钥连接到EC2实例。
4.检查网络配置,确保EC2实例可以接收SSH连接。
bash
生成SSH密钥对ssh-keygen -t rsa -b 4096将公钥添加到EC2实例的authorized_keysssh-copy-id -i ~/.ssh/id_rsa.pub ec2-user@IP.compute-1.amazonaws.com
使用私钥连接到EC2实例ssh -i ~/.ssh/id_rsa ec2-user@IP.compute-1.amazonaws.com
当我使用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服务器上使用此密钥创建了文件.ssh / authorized_keys,但它仍然无效.
这有什么问题?
要使用ssh代理:ssh_options[:forward_agent] = true
要使用你的pem文件:
ssh_options[:auth_methods] = ["publickey"] ssh_options[:keys] = ["/path/to/file.pem"]
在本地启用代理
$ssh-add
你每次都要执行这个命令,我不知道’每次’的范围,我每次在终端上用echo ssh-add>>打开一个新选项卡时都添加了ssh-add. 〜/ .bashrc,具体取决于您的操作系统和配置.
据我所知,这个过程是这样的:
>您在当地有一个ssh-agent>您使用pem文件连接到正在部署的服务器,就像使用ssh一样,但这次是通过Capistrano>远程服务器使用您的代理使用您的密钥来检查部署机器内的git repo.
本文共计473个文字,预计阅读时间需要2分钟。
在将Rails应用部署到Amazon EC2服务器时,遇到权限问题提示Permission denied (publickey),以及远程端意外挂起的情况。以下是简化后的解决步骤:
1. 确保在本地电脑上生成了SSH密钥对。
2.将公钥添加到EC2实例的`~/.ssh/authorized_keys`文件中。
3.使用正确的用户名和私钥连接到EC2实例。
4.检查网络配置,确保EC2实例可以接收SSH连接。
bash
生成SSH密钥对ssh-keygen -t rsa -b 4096将公钥添加到EC2实例的authorized_keysssh-copy-id -i ~/.ssh/id_rsa.pub ec2-user@IP.compute-1.amazonaws.com
使用私钥连接到EC2实例ssh -i ~/.ssh/id_rsa ec2-user@IP.compute-1.amazonaws.com
当我使用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服务器上使用此密钥创建了文件.ssh / authorized_keys,但它仍然无效.
这有什么问题?
要使用ssh代理:ssh_options[:forward_agent] = true
要使用你的pem文件:
ssh_options[:auth_methods] = ["publickey"] ssh_options[:keys] = ["/path/to/file.pem"]
在本地启用代理
$ssh-add
你每次都要执行这个命令,我不知道’每次’的范围,我每次在终端上用echo ssh-add>>打开一个新选项卡时都添加了ssh-add. 〜/ .bashrc,具体取决于您的操作系统和配置.
据我所知,这个过程是这样的:
>您在当地有一个ssh-agent>您使用pem文件连接到正在部署的服务器,就像使用ssh一样,但这次是通过Capistrano>远程服务器使用您的代理使用您的密钥来检查部署机器内的git repo.

