Mỗi lần vải chạy, nó yêu cầu mật khẩu gốc, nó có thể được gửi cùng một cho các đề xuất tự động hay không.Mật khẩu vải
fab staging test
Mỗi lần vải chạy, nó yêu cầu mật khẩu gốc, nó có thể được gửi cùng một cho các đề xuất tự động hay không.Mật khẩu vải
fab staging test
fab -h
sẽ cho bạn thấy tất cả các tùy chọn, bạn cũng có thể đọc chúng here.
Đặc biệt, và tôi trích dẫn,
PASSWORD -p, --password = PASSWORD
Sets env.password vào chuỗi nhất định; sau đó nó sẽ được sử dụng làm mật khẩu mặc định khi thực hiện kết nối SSH hoặc gọi chương trình sudo.
Tôi biết bạn đã hỏi về mật khẩu nhưng sẽ không tốt hơn khi định cấu hình hệ thống để bạn có thể làm vải (tức là SSH) không có mật khẩu?
Đối với điều này, trên máy tính địa phương làm:
ssh-keygen
và đồng ý với tất cả các giá trị mặc định (nếu bạn không có lý do làm khác)cat ~/.ssh/id_rsa.pub
và sao chép rằng chìa khóaTrên máy tính từ xa :
mkdir ~/.ssh && chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys2 && chmod 600 ~/.ssh/authorized_keys2
authorized_keys2
Từ bây giờ máy từ xa của bạn “tin tưởng” máy tính cục bộ của bạn và cho phép đăng nhập nó vào mà không cần mật khẩu. Tiện dụng.
Tôi đã phải chạy 'chmod 700 ~/.ssh' để làm cho nó hoạt động –
sử dụng ssh-copy-id có thể nhanh hơn: ' 'ssh-copy-id'' Cách sử dụng:/usr/bin/ssh-copy -id [-i [identity_file]] [user @] máy – HVNSweeting
+1 cho ssh-copy-id. Khéo léo! – dennis
Một cách để làm điều này mà không cần đặt mật khẩu trong danh sách quá trình (các lệnh hiển thị trong ps aux) là để đặt nó trong fabfile.py như vậy:
from fabric.context_managers import env
env.password = 'PASSWORD'
Đặt rằng trước khi bất cứ điều gì mà đi với hệ thống từ xa và nó sẽ không hỏi mật khẩu nữa.
Chỉ cần một lưu ý, điều này tạo ra một lỗi trong Fabric 1.5.3 và Paramiko 1.9.0 mới nhất. –
Chỉ cần xóa 'từ nhập khẩu vải env' – Crazenezz
Gói mới là context_managers,' từ fabric.context_managers import env' –
Bạn cũng có thể đặt mật khẩu trên cơ sở mỗi máy chủ. Đó là không rõ ràng đối với tôi, vì vậy ở đây nó đi cho bất cứ ai tìm kiếm này:
from fabric import env
env.hosts = ['[email protected]:port1', '[email protected]']
env.passwords = {'[email protected]:port1': 'password1', '[email protected]': 'password2'}
cache Vải sử dụng mật khẩu có trong từ điển env.passwords. Nó đặt bộ nhớ cache này bằng cách sử dụng chuỗi máy chủ đầy đủ làm khóa của từ điển đó và mật khẩu làm giá trị. Nếu bạn tự thiết lập từ điển này trước khi thực hiện bất kỳ tác vụ nào, Fabric sẽ không hỏi gì cả.
cảm ơn rất lớn cho câu trả lời này – qre0ct
Chỉ cần thêm cho bất kỳ ai leo lên đây từ tìm kiếm, bạn có thể chỉ định tùy chọn -I
khi chạy fab để nó nhắc bạn nhập mật khẩu mặc định để sử dụng.Bằng cách này, nó sẽ không được hiển thị trong lịch sử lệnh của bạn
dụ:
$ fab -I my_task
Initial value for env.password:
tôi sẽ xem xét rất cẩn thận trước khi áp dụng bất kỳ ** ** chiến lược liên quan đến lưu trữ mật khẩu trong bản rõ - như môi trường vars, lưu trong kịch bản, thậm chí được nhập vào dòng lệnh - nhiều như tôi ghét mâu thuẫn với một ngôi sao sáng như AM (thực sự, người đàn ông, bạn đã cho tôi một ** rất nhiều thông tin trong những năm qua) - nó sống trong lịch sử lệnh của bạn và trình bày một nguy cơ bảo mật. – gomad