2012-10-09 52 views
3

我有一個包含面料不斷要求密碼

env['hosts'] = ['localhost'] 
env['user'] = 'code' 
env['password'] = 'searce' 

def mk_dirtree(): 
    sudo("mkdir %s" % PROJECT_DIR) 
    sudo("chown -R code:code %s" % PROJECT_DIR) 
    run("mkdir -p %s" % (PROJECT_DIR + '/www/static')) 
    sudo("chown -R www-data:www-data %s" % (PROJECT_DIR + '/www')) 

現在晶圓廠的文件,當我做fab mk_dirtree我不斷提示[localhost] Login password for 'code':

我在一個EC2實例上運行這其中我通過連接對SSH使用SSH密鑰和密碼登錄禁用

編輯: 我覺得織物先做ssh [email protected]但不會因爲密碼sshing被禁用的工作

回答

4

如果您確實需要並需要使用run()而不是local(),則可以將SSH公鑰添加到用戶帳戶的~/.ssh/authorized_keys文件中。

這將是這個樣子:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 

該解決方案將繞過你的本地計算機的登錄密碼的提示。當然,您必須爲每臺運行fabfile的本地機器執行此操作。

+0

這真的幫助我在我的iMac。我正在開發我的run()命令,這可以快速測試我的本地主機上的這些命令。 – zerocog