簡體   English   中英

使用Fabric的git pull的SSH密鑰密碼

[英]SSH key passphrase with git pull using Fabric

我正在嘗試使用fabric自動部署應用程序。

應用程序代碼托管在GitHub上,推出一個新版本非常簡單 - 只需要'git pull'就可以了。 該應用程序托管在100台服務器上,因此我希望自動部署。 Fabfile.py:

def deploy():
  code_path = '/home/myuser/myapp'
  with cd(code_path):
    run('git pull')
    run('git submodule update --init --recursive')

問題是,在每個git命令上我得到一個promt: Enter passphrase for key '/home/myuser/.ssh/id_rsa

有沒有辦法自動輸入密碼? 它在每台服務器上都是一樣的,與sudo密碼相同

我曾嘗試過訪問庫 ,但我想知道是否有更好的(即標准的)方法。

您還可以使用ssh密鑰代理並使用代理轉發。 始終在密鑰上輸入密碼。 Github在這里有如何利用它的好文檔。

Fabric現在也應該具有代理轉發能力。 我在一些極端情況下遇到了麻煩,但是在問題解決之前,用一個明確的本地('ssh -A ...)作為解決方法繞過它們。

雖然我認為在接受的答案中描述的ssh-aget轉發是一個更好的解決方案(如果你使它工作),但有替代它,由Fabric本身提供:
Fabric有自己的“密碼”設置選項(即env.password條目)。 如果設置env.password可以使fabric自動輸入密碼(和sudo passwod)( 參見文檔 ):

密碼

默認值: None

連接到遠程主機時和/或回答sudo提示時SSH層使用的默認密碼。

您可以使用以下任一選項設置密碼

  • 在“fabfile.py”中的代碼中直接使用env.password = 'PASSWORD'
  • 在命令行中作為fab命令的選項,使用-p PASSWORD--password=PASSWORD文檔 )。
  • 作為另一個選項,您可以將passwod=PASSWORD行放在~/.fabricrc文檔 )中,該文件在每個fab命令之前加載,如果使用此選項,則不需要命令行選項和代碼更改。

制作鑰匙時不要使用密碼短語。 只需按Enter鍵再按確認即可。 您還可以擁有多個密鑰。 有些用密碼,有些沒用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM