Каждый раз, когда ткань запускается, он запрашивает пароль root, может ли он отправляться вместе с тем для автоматических предложений.fabric password
fab staging test
Каждый раз, когда ткань запускается, он запрашивает пароль root, может ли он отправляться вместе с тем для автоматических предложений.fabric password
fab staging test
fab -h
покажет вам все варианты, вы также можете прочитать их here.
В частности, я цитирую,
-p ПАРОЛЬ, --password = ПАРОЛЬ
Наборы env.password к данной строке; он будет использоваться в качестве пароля по умолчанию при подключении SSH или вызове программы sudo.
Я знаю, что вы спросили о пароле, но не лучше ли настроить систему, чтобы вы могли делать ткань (т. Е. SSH) без пароля?
Для этого на локальной машине сделать:
ssh-keygen
и согласен со всеми по умолчанию (если у вас есть нет причин поступить иначе)cat ~/.ssh/id_rsa.pub
и скопировать этот ключевойНа удаленной машине :
mkdir ~/.ssh && chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys2 && chmod 600 ~/.ssh/authorized_keys2
authorized_keys2
Отныне ваш удаленный компьютер «доверяет» локальной машине и позволяет его регистрации без пароля. Handy.
Мне нужно было запустить 'chmod 700 ~/.ssh', чтобы заставить его работать –
use ssh-copy-id может быть быстрее: ' 'ssh-copy-id'' Использование:/usr/bin/ssh-copy -id [-i [identity_file]] [user @] машина – HVNSweeting
+1 для ssh-copy-id. Ухоженная! – dennis
Один из способов сделать это без ввода пароля в списке процессов (команды показывают в пс Окс), чтобы поместить его в fabfile.py так:
from fabric.context_managers import env
env.password = 'PASSWORD'
Помещенный, что прежде всего, что идет к удаленной системе, и он больше не будет запрашивать пароль.
Просто обратите внимание, что это приводит к ошибке в последних версиях Fabric 1.5.3 и Paramiko 1.9.0. –
Просто удалите 'from fabric import env' – Crazenezz
Новый пакет context_managers,' from fabric.context_managers import env' –
Вы также можете установить пароли для каждого хоста. Это было очевидно для меня, так вот он идет для тех, кто ищет это:
from fabric import env
env.hosts = ['[email protected]:port1', '[email protected]']
env.passwords = {'[email protected]:port1': 'password1', '[email protected]': 'password2'}
ткани кэши используются пароли в словаре env.passwords. Он устанавливает этот кеш с использованием полной строки хоста в качестве ключа этого словаря и пароля в качестве значения. Если вы установите этот словарь самостоятельно перед выполнением какой-либо задачи, Fabric не будет запрашивать их вообще.
Огромное спасибо за этот ответ – qre0ct
Чтобы добавить кого-нибудь, кто сюда забирает, вы можете указать опцию -I
при запуске fab, чтобы она предложила вам использовать пароль по умолчанию.Таким образом, он не будет отображаться в вашей истории команд
пример:
$ fab -I my_task
Initial value for env.password:
Я хотел бы рассмотреть очень внимательно, прежде чем принимать ** ** любую стратегию, которая занимается хранением паролей в незашифрованном виде - в качестве среды варов, сохраненными в скрипты, даже введенные в командной строке - так же, как мне не нравится противоречить светилу, например AM (на самом деле, человек, вы дали мне ** много информации за эти годы) - он живет в вашей истории команд и представляет угрозу безопасности. – gomad