39

ファブリックが実行されるたびに、root パスワードが要求されます。自動化された提案のために同じように送信できますか。

fab staging test
4

7 に答える 7

59

パスワードについて質問されたことは知っていますが、パスワードなしでファブリック (つまり SSH) を実行できるようにシステムを構成したほうがよいのではないでしょうか?

このために、ローカル マシンで次の操作を行います。

  1. ssh-keygenすべてのデフォルトに同意します(理由がない場合はそうしないでください)
  2. cat ~/.ssh/id_rsa.pubそのキーをコピーします

リモート マシン上:

  1. mkdir ~/.ssh && chmod 700 ~/.ssh
  2. touch ~/.ssh/authorized_keys2 && chmod 600 ~/.ssh/authorized_keys2
  3. コピーしたキーを貼り付けますauthorized_keys2

これで、リモート マシンはローカル マシンを「信頼」し、パスワードなしでログインできるようになります。ハンディ。

于 2010-02-26T10:29:15.577 に答える
51

ホストごとにパスワードを設定することもできます。それは私には明らかではなかったので、これを探している人のためにここに行きます:

from fabric import env
env.hosts = ['user1@host1:port1', 'user2@host2.port2']
env.passwords = {'user1@host1:port1': 'password1', 'user2@host2.port2': 'password2'}

ファブリックは、使用されたパスワードをenv.passwordsディクショナリにキャッシュします。その辞書のキーとして完全なホスト文字列を使用し、値としてパスワードを使用して、このキャッシュを設定します。タスクを実行する前にこの辞書を自分で設定した場合、Fabricはそれらをまったく要求しません。

于 2011-04-06T14:40:18.073 に答える
50

fab -hすべてのオプションが表示されます。ここで読むこともできます。

特に、私は引用します、

-p PASSWORD, --password=PASSWORD

env.password を指定された文字列に設定します。これは、SSH 接続を確立するとき、または sudo プログラムを呼び出すときに、デフォルトのパスワードとして使用されます。

于 2010-02-26T05:58:37.873 に答える
8

検索からここにたどり着いた人のために付け加えて-Iおくと、 fab を実行するときに、使用するデフォルトのパスワードを求めるプロンプトを表示するオプションを指定できます。これにより、コマンド履歴に表示されなくなります

例:

$ fab -I my_task
Initial value for env.password: 
于 2013-10-16T16:01:40.813 に答える
8

sshパスワードを設定することも可能ですconnect_args

    conn = Connection(
    "{username}@{ip}:{port}".format(
        username=username,
        ip=ip,
        port=port,
    ),
    connect_kwargs={"password": password},
)
于 2018-12-04T16:53:39.300 に答える
6

プロセスリストにパスワードを入れずにこれを行う1つの方法(コマンドはps auxに表示されます)は、次のようにfabfile.pyにパスワードを入れることです。

from fabric.context_managers import env
env.password = 'PASSWORD'

リモートシステムに送信されるものの前にそれを置くと、パスワードを要求されなくなります。

于 2011-03-15T21:23:04.057 に答える