[英]DreamHost and BitBucket SSH Key connection without prompting for passphrase
[英]Deployment using ssh with key without providing passphrase for private key (ssh-agent)
關於私鑰的密碼短語,Capistrano和Rocketeer之間的區別在哪里?
我已經正確設置了Capistrano和Rocketeer部署策略並可以正常工作。 Capistrano讓ssh-agent提供密碼短語 -Rocketeer似乎不提供。 問題不是關於如何,而是為什么需要密碼短語。
背景:
我想使用Rocketeer而不是Capistrano來部署Laravel應用程序。 似乎將SSH連接委托給Laravel。
在配置中僅設置了遠程服務器的名稱並運行檢查后,在提示輸入憑據后,Rocketeer將所需的密碼和我所需的私鑰的路徑存儲在非版本控制的文件中。
我不想在磁盤上存儲用於建立SSH連接的憑據-尤其是不希望使用任何我的私鑰的密碼短語。
那么,為什么只需要服務器名稱呢?
我看到Laravel在其remotes配置中准備了這些字段-我只是找不到最終負責哪個組件,以及為什么它沒有完全將SSH連接留給系統本身。
是在下面需要大量信息才能建立SSH連接的Rocketeer , Laravel , Symfony , phpseclib還是php本身?
Laravel缺少phpseclib的ssh-agent的實現,該實現需要許多信息來建立SSH連接。
這就是為什么Rocketeer不允許Capistrano依賴用戶名/密碼和私鑰/密碼驗證旁邊的ssh-agent。
有人提議說 ,並合並到包括phpseclib的使用SSH代理無證執行 ,而不是一個明確的關鍵。
Rocketeer將從中受益,因為Rocketeer依賴於Laravel中所說的phpseclib實現。
(感謝@ hannesvdvreken,@ ThomasPayer和@passioncoder指向正確的方向)
您可能想知道一些事情。
您可以使用默認的app/config/remote.php
,也可以使用在app/packages/anahkiasen/rocketeer
下發布的Rocketeer config.php
。
我傾向於使用Laravel文件。 我將該文件的副本復制到app/config/development
文件夾中,而git使用.gitignore
其忽略。 我只在該文件中寫下私鑰的密碼。 它將與app/config/remote.php
的數組合並。
這是我的app/config/development/remote.php
文件:
return array(
'connections' => array(
'staging' => array(
'keyphrase' => 'your-secret-here',
),
'production' => array(
'keyphrase' => 'your-secret-here',
),
),
);
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.