Paswordless Rupync qua SSH mà không cần xác thực khóa [Không an toàn]


12

Tôi muốn thiết lập một công việc RSync sẽ kết nối thông qua SSH.

Tôi có máy tính của mình (backup @ myhost) và máy chủ từ xa (test @ remhost) và tôi cần sao lưu thư mục ~ / một cái gì đó với tất cả nội dung của nó. Kiểm tra người dùng ssh chỉ có quyền truy cập READ vào tất cả các tệp và thư mục trong thư mục ~ /. Tôi muốn sử dụng rsync để sao chép thư mục test @ remhost: ~ / Something vào thư mục backup @ myhost: ~ / bak.

Với mục đích này, tôi sử dụng lệnh sau qua BASH trên Ubuntu 11.10 (Oneiric):

rsync -avz -e ssh test@remhost:~/something/ ~/bak/

Sau khi nhấn enter tôi nhận được điều này:

test@remhost's password:

Tôi gõ mật khẩu và rsync hoạt động.

Tôi muốn thực hiện lệnh trên để tự động nhập mật khẩu và chuyển nó dưới dạng tham số hoặc tự động nhập mật khẩu và bắt đầu công việc.

Tôi đã thử thực thi rsync -avz -e ssh test:password@remhost:~/something/ ~/bak/nhưng nó vẫn hỏi mật khẩu và thật khó chịu.

Tôi không muốn nghe về bất kỳ loại khóa nào (RSA, DSA hoặc bất kỳ loại nào khác). Tôi chỉ muốn một lệnh đơn giản sẽ đăng nhập và thực hiện công việc.

EDIT: Một kịch bản có thể xảy ra, nếu xác thực khóa chung bị tắt và bạn không thể thay đổi điều này. Ví dụ: nếu bạn sử dụng OpenSSH, bạn cần có quyền root trên máy chủ để chỉnh sửa tệp sshd_configvà thêm PubkeyAuthentication yes.

EDIT: Đây là những gì cuối cùng đã làm việc cho tôi:

sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/

Xin lưu ý rằng phương pháp này không được coi là an toàn vì nó sẽ gửi mật khẩu ở dạng văn bản đơn giản và nó dễ bị tấn công bởi người trung gian. Người ta khuyên nên sử dụng khóa khai thác chính để bảo mật mạnh hơn.


3
Bạn sẽ không nhận được bất kỳ câu trả lời nếu bạn nói với mọi người không cho bạn biết câu trả lời.
Mike Scott

7
Điều này là vô nghĩa. Có vấn đề gì với xác thực khóa? Nếu xác thực dựa trên khóa được định cấu hình, thì từ thời điểm đó, bạn chỉ có một lệnh đơn giản thực hiện công việc, tự động, chính xác mà bạn muốn. Vì vậy, tôi không thể thấy vấn đề với điều này. Lưu trữ mật khẩu ở đâu đó để chỉ định "tự động" là một trong những lỗ hổng bảo mật lớn nhất mà tôi có thể tưởng tượng, đâu là điểm để làm điều đó?
LGB

Tôi không cần ai cho tôi những bài giảng về an ninh. Tôi đã biết những hàm ý. Tôi chỉ cần để lại mọi thứ trên máy chủ và không thay đổi gì cả. Đối với Thông tin của bạn, tôi đã thử với các khóa và nó vẫn hỏi tôi mật khẩu do đó đối số của bạn không hợp lệ!
Sorin-Mihai Oprea

1
Không, vì lý do chính đáng, không có tham số như vậy theo mặc định. Nhìn vào câu trả lời của Migs nếu bạn muốn một tham số như vậy.
thắt lưng

2
@Sorin Mihai Oprea: Chà, nếu nó không hiệu quả với bạn, nó có tệ không? Hấp dẫn. Để biết thông tin của bạn: là một kỹ sư hệ thống internet làm việc tại ISP, chúng tôi sử dụng xác thực dựa trên khóa với ssh trên hơn 100 máy chủ. Nó làm việc cho chúng tôi, thú vị. Đừng gọi một cái gì đó xấu chỉ vì bạn không hiểu cách thức hoạt động của nó và cách nó phải được cấu hình. Nếu bạn đúng, nó sẽ không hoạt động đối với bất kỳ ai sẽ thu hút sự chú ý như một lỗi triển khai máy chủ ssh lớn :) Vì vậy, phần mềm của tôi không hợp lệ, chỉ vì một số lý do bạn không thể cấu hình nó tốt. Nó không giống nhau, xin lỗi.
LGB

Câu trả lời:


29

có thể thử sshpass .

có vẻ đủ đơn giản để sử dụng ... nó cũng có sẵn thông qua apt.

Tôi đã tìm kiếm một cái gì đó như thế này trước khi tôi sao chép chìa khóa của mình xung quanh, nhưng vì tôi đã nhận được chìa khóa của mình ở mọi nơi nên dù sao tôi cũng cần thời gian để thử nó.

Tuy nhiên, hãy lưu ý từ chối trách nhiệm trong hướng dẫn đó về khả năng hiển thị mật khẩu của bạn.


Đối với tất cả những người cần phải làm điều này:

sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/

Bạn được chào đón nhất. Mặc dù tôi đồng ý với những người còn lại ở đây rằng xác thực khóa công khai là giải pháp tốt nhất cho vấn đề này, đôi khi cần có các phương pháp thay thế, miễn là chúng tôi nhận thức được sự đánh đổi khi sử dụng các phương án thay thế.
Migs

Thật vậy ... nhưng đó là lý do tại sao nó được gọi là nguồn mở phải không? Nhiều hương vị ... cùng một kết quả!
Sorin-Mihai Oprea

1
CẢM ƠN BẠN không chỉ nói mật khẩu là xấu, đừng sử dụng chúng, một số người trong chúng tôi trên thiết bị kế thừa OLDĐD chỉ cần những thứ này để có được cho đến khi thiết bị mới xuất hiện :)
Theodore Howell

6

Một biến thể trong giải pháp của bạn an toàn hơn đối với các mối đe dọa bảo mật là lưu trữ mật khẩu của bạn trong một tệp có quyền chặt chẽ và sử dụng -fcờ với shpass:

sshpass -f '/home/me/.password' rsync --progress -avz -e ssh
test@remhost:~/something/ ~/bak/

Sự khác biệt là việc liệt kê các tiến trình đang chạy sẽ không hiển thị mật khẩu của bạn trong dòng lệnh, giờ đây nó sẽ chỉ hiển thị đường dẫn đến tệp chứa mật khẩu của bạn.


Câu trả lời này tốt hơn câu trả lời được chấp nhận.
vietnguyen09

1

Tôi không thể tưởng tượng bất kỳ tình huống nào trong đó xác thực khóa công khai mà không có cụm mật khẩu sẽ không phải là giải pháp tốt hơn cho đăng nhập ssh / rsync được tự động hóa.

Dù sao expectcũng nên là một cách để đạt được những gì bạn muốn làm. Bạn không thể chuyển mật khẩu sang ssh, nhưng đây là một cái gì đó rất giống nhau. Làm thế nào để làm như vậy, được trả lời ở đây tại stackoverflow .


Cảm ơn bạn đã gợi ý nhưng tôi thực sự thấy sshpass đơn giản hơn rất nhiều!
Sorin-Mihai Oprea

1

Tôi thấy rằng sshpass hoạt động, nhưng vì termanal nói rằng SSHPASS read: Enter passphrase for key '/home/ubuntu/.ssh/id_rsa':bạn cần chạy nó như thế này:

sshpass -P passphrase -p 'password' rsync /path/to hostname:/destination/path -av --progress -e ssh

Trường hợp -Pchỉ định nhắc nhở nào để tìm tôi đã phát hiện ra điều đó bằng cách chạy sshpass -vvà tìm ra cụm từ tìm kiếm cụm từ passwordkhông có ở đó.


0

Điều đầu tiên là làm ssh mà không cần passowrd/bypassđăng nhập mật khẩu, vì bạn có thể thấy chúng ta có thể sử dụng ssh-copy-id -i ./ssh/id_rsa.pubđể nhắm mục tiêu máy.

Sau khi kiểm tra, máy có thể được điều khiển từ xa bằng ssh mà không cần mật khẩu, sau đó rsync trên đường tiếp theo tất nhiên từ máy cục bộ vào target/servermáy

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.