2012-07-20 33 views
9

Tôi đang sử dụng lftp để gửi tệp đến máy chủ sftp, nhưng tôi không biết cách kết nối với khóa và cụm mật khẩu.lftp bằng khóa + cụm mật khẩu?

Vì vậy, trong sftp, tôi có thể làm điều này:

sftp -i .ssh/id_rsa.mykey [email protected] 
Enter passphrase for key '.ssh/id_rsa.mykey': my passphrase here 

Vì vậy, làm thế nào tôi có thể sử dụng lftp với phương pháp kết nối này?

+0

lftp là ứng dụng khách, hỗ trợ giao thức mulitple (ftp, ftps, sftp, ...), bạn đang cố sử dụng giao thức nào? Ví dụ: ftp không hỗ trợ xác thực khóa công khai, vì vậy bạn bị kẹt với tên người dùng + mật khẩu. – mata

+0

Tôi đang sử dụng sftp, vì vậy tôi có thể sử dụng cụm mật khẩu với khóa của mình. Tôi đã thử cách này: ** lftp -e "đặt ssl: khóa-tệp .ssh/id_rsa.mykey" sftp: //my.host.fr** nhưng nó không hoạt động ... – Hakadel

+0

tại sao don ' t bạn sử dụng lệnh 'scp' hoặc' sftp', cung cấp hỗ trợ tốt hơn cho các giao thức dựa trên ssh ... có vẻ như làm việc với lftp đang sử dụng 'ssh-add' để thêm khóa riêng vào một tác nhân' ssh-running ', mà lftp sau đó sử dụng. – mata

Trả lời

15

Bạn phải chỉ định tên người dùng và chỉ chuyển bất kỳ thứ gì làm mật khẩu để bỏ qua yêu cầu.

lftp -u user,xxx sftp://... 
+6

'lftp -u user, sftp: // hostname' cũng hoạt động (lưu ý dấu phẩy) –

+0

Vì lý do nào đó, điều này không hoạt động nếu bạn cần gửi một khóa riêng và mật khẩu. Mật khẩu không được gửi hoặc mật khẩu không được gửi chính xác. –

2

lftp dường như không vượt qua hoặc không sử dụng các tập tin danh tính cụ thể với "ssl: key-file" với SSH, bạn phải xác định nó trong sftp: kết nối chương trình lựa chọn: "ssh -a -x -i yourprivatekeyfile "

Điều này sẽ hiệu quả.

5

chỉ cần thêm

 sftp:connect-program "ssh -a -x -i yourprivatekeyfile" 

để lftp.conf của bạn, như hầu hết các thiết lập có thể được thiết lập vĩnh viễn có

11

Một câu trả lời dựa trên Jean-Luc của Boss và của wiak, nhưng một chút rõ ràng hơn:

Để kết nối với máy chủ, lftp sử dụng lệnh ssh, theo mặc định ssh -a -x. Nó không có tùy chọn rõ ràng để thay đổi keyfile để sử dụng, nhưng như bạn chú ý, ssh, vì vậy chúng tôi chỉ cần đặt lftp để kết nối bằng cách sử dụng ssh -a -x -i <keyfile> trước khi kết nối.

Bạn có thể làm điều này trong một vài cách sau:

  • Nếu bạn đang sử dụng dòng lệnh tương tác lftp của, chạy lệnh sau đây trước khi bạn kết nối:

    set sftp:connect-program "ssh -a -x -i <keyfile> 
    
  • Nếu bạn chỉ định một loạt lệnh để lftp bằng cách sử dụng -c, chỉ cần thêm lệnh được đặt đó vào đầu chuỗi lệnh:

    lftp -c 'set sftp:connect-program "ssh -a -x -i <keyfile>"; connect sftp://[email protected]; mirror -eR files; ...' 
    
  • Nếu bạn luôn muốn sử dụng cùng một khóa, chỉ cần thêm dòng set ... từ viên đạn đầu tiên vào tệp ~/.lftprc của bạn (hoặc một trong các tùy chọn tệp cấu hình khác được liệt kê trong man lftp).

Các vấn đề liên quan