2012-04-11 27 views
19

Tôi gặp sự cố lạ khi triển khai trang web Django bằng Fabric. Tôi đã cấu hình hai máy chủ để sử dụng các tập tin quan trọng để đăng nhập. Tôi có thể SSH vào cả hai mà không cần mật khẩu. Tôi có thể chạy fab trên một cách chính xác,Vải yêu cầu mật khẩu mặc dù tôi có thể SSH bằng cách sử dụng thông tin xác thực

$ fab live pull 
[mysite.com] Executing task 'pull' 
[mysite.com] run: test -d proj 
[mysite.com] run: test -d proj/.git 
[mysite.com] run: git pull origin master 
... 

trong khi các máy chủ khác yêu cầu một mật khẩu:

$ fab staging pull 
[dev.mysite.com] Executing task 'pull' 
[dev.mysite.com] run: test -d proj 
[dev.mysite.com] Login password: 

Các fabfile được thiết lập khá rõ ràng

def staging(): 
    env.hosts = ['dev.mysite.com'] 
    env.user = 'bamboo' 
    env.key_filename = '~/.ssh/id_dsa_bamboo' 

Và chạy ssh trực tiếp từ dòng lệnh hoạt động

$ ssh [email protected] -i ~/.ssh/id_dsa_bamboo 
Last login: Wed Apr 11 06:24:28 2012 from xxx.xxx.xx.xx 
[[email protected] ~]$ 

Tôi cũng cố gắng thiết lập env.use_ssh_config = True và chạy với ~/.ssh/config thiết lập để

Host dev.mysite.com                   
    User bamboo                    
    IdentityFile ~/.ssh/id_dsa_bamboo               
    ForwardAgent yes 

Bất kỳ ý tưởng những gì có thể xảy ra? Cảm ơn đã giúp đỡ.

+0

Rất tương tự ở đây. Tôi có thể chạy tất cả các nhiệm vụ của tôi thành công ngày hôm qua và ngay cả hôm nay nhưng đột nhiên vải bắt đầu hỏi tôi mật khẩu. – sobi3ch

+0

Bất cứ ai có thể liệt kê nguyên nhân có thể cho việc này, xin vui lòng – Romaan

Trả lời

25

Bạn có thể thêm:

ssh.util.log_to_file("paramiko.log", 10) 

Để đầu fabfile của bạn, sau khi nhập khẩu, để có được thông tin chi tiết hơn về quá trình cấp phép.

+17

Brillant. Đừng quên 'từ fabric.network import ssh' – RickyA

+2

Tuyệt vời, cảm ơn vì điều này. Chỉ cho tôi rằng paramiko không hỗ trợ các khóa kiểu 'ssh-ed25519'. Lưu ý thứ hai là bạn cũng sẽ cần phải đảm bảo máy chủ từ xa trình bày một khóa 'rsa' cũng như cung cấp một khóa làm tệp nhận dạng' – James

2

Đối với tôi, tôi đã phải thiết lập lại bản sắc đại lý SSH với:

ssh-add -D

Sau đó thêm chìa khóa của tôi trở lại với:

ssh-add -K keyname

cẩn thận, điều này sẽ xóa tất cả các danh từ SSH đặc vụ.

0

tôi phải cập nhật vải (có thể là sau khi cập nhật OSX):

sudo pip install --upgrade fabric 
Các vấn đề liên quan