![](/img/trans.png)
[英]Capistrano Deploy Failing on git:check - Permission denied (publickey)
[英]Amazon EC2 + Capistrano + Git: Permission denied (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
執行時
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 >> ~/.bashrc
打開一個新選項卡時都添加了ssh-add運行,具體取決於您的操作系統和配置。
據我所知,這個過程是這樣的:
ssh
,但這次是通過Capistrano 您可以首先使用SSH連接到EC2實例,然后使用EC2實例上安裝的ssh密鑰從EC2實例克隆您的github存儲庫嗎?
對於所有這些分布式工作流程,事情可能會有點令人困惑,所以讓我試着弄清楚你做錯了什么。
您在Github上安裝的id_rsa.pub與私鑰對應。 通常,這是在~/.ssh/id_rsa
這個密鑰對允許~/.ssh/id_rsa
的持有者SSH到github。
.ssh/authorized_keys
是SSH服務器配置。 authorized_keys
包含公鑰(即id_rsa.pub
),以使SSH服務器能夠接受來自具有相應私鑰的計算機的傳入連接。 authorized_keys
文件與克隆問題無關。
EC2實例正在嘗試聯系Github存儲庫,以便從Github克隆存儲庫,並且失敗。 EC2實例需要配置一個私鑰,以匹配該帳戶的相應公共(Github)密鑰。
在EC2實例上生成新的密鑰對,並將新密鑰對中的公鑰添加到您的Github帳戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.