Trang chủ » làm thế nào để » Cách sao chép tập tin từ xa qua SSH mà không cần nhập mật khẩu

    Cách sao chép tập tin từ xa qua SSH mà không cần nhập mật khẩu

    SSH là cứu cánh khi bạn cần quản lý máy tính từ xa, nhưng bạn có biết bạn cũng có thể tải lên và tải xuống các tệp không? Sử dụng khóa SSH, bạn có thể bỏ qua việc nhập mật khẩu và sử dụng mật khẩu này cho tập lệnh!

    Quá trình này hoạt động trên Linux và Mac OS, miễn là chúng được cấu hình đúng để truy cập SSH. Nếu bạn đang sử dụng Windows, bạn có thể sử dụng Cygwin để có được chức năng giống như Linux và với một chút tinh chỉnh, SSH cũng sẽ chạy.

    Sao chép tập tin qua SSH

    Sao chép an toàn là một lệnh thực sự hữu ích và thực sự dễ sử dụng. Định dạng cơ bản của lệnh như sau:

    scp [tùy chọn] gốc_file Destination_file

    Các kicker lớn nhất là làm thế nào để định dạng các phần từ xa. Khi bạn xử lý một tệp từ xa, bạn cần thực hiện theo cách sau:

    user @ server: đường dẫn / đến / tập tin

    Máy chủ có thể là một URL hoặc một địa chỉ IP. Điều này được theo sau bởi dấu hai chấm, sau đó đường dẫn đến tệp hoặc thư mục được đề cập. Hãy xem một ví dụ.

    scp -P 40050 Máy tính để bàn / url.txt [email protected]: ~ / Máy tính để bàn / url.txt

    Lệnh này có cờ [-P] (lưu ý rằng đó là chữ P viết hoa). Điều này cho phép tôi chỉ định số cổng thay vì mặc định 22. Điều này là cần thiết đối với tôi vì cách tôi đã cấu hình hệ thống của mình.

    Tiếp theo, tập tin gốc của tôi là trong url url.txt, nằm trong thư mục có tên là Desktop Desktop. Tệp đích nằm trong Tiếng Việt ~ / Máy tính để bàn / url.txt, tương tự như trên / / ứng dụng / ứng dụng trên nền tảng. Lệnh này đang được người dùng chạy yatri trên máy tính từ xa, 192.168.1.50..

    Nếu bạn cần làm ngược lại thì sao? Bạn có thể sao chép các tập tin từ một máy chủ từ xa tương tự.

    Ở đây, tôi đã sao chép một tập tin từ thư mục 'của máy tính / máy tính để bàn của máy tính từ xa vào thư mục máy tính để bàn của máy tính của tôi.

    Để sao chép toàn bộ thư mục, bạn sẽ cần sử dụng cờ [-r] (lưu ý rằng đó là chữ thường r).

    Bạn cũng có thể kết hợp cờ. Thay vì

    scp -P -r

    Bạn chỉ có thể làm

    scp -Pr

    Điều khó khăn nhất ở đây là việc hoàn thành tab không phải lúc nào cũng hoạt động, vì vậy thật hữu ích khi có một thiết bị đầu cuối khác có phiên SSH chạy để bạn biết nơi để đặt mọi thứ.

    SSH và SCP không có mật khẩu

    Bản sao an toàn là tuyệt vời. Bạn có thể đặt nó trong các tập lệnh và để nó sao lưu vào các máy tính từ xa. Vấn đề là không phải lúc nào bạn cũng có thể nhập mật khẩu. Và, thành thật mà nói, đó là một nỗi đau thực sự lớn khi đặt mật khẩu của bạn vào một máy tính từ xa mà bạn rõ ràng có quyền truy cập mọi lúc.

    Chà, chúng ta có thể sử dụng mật khẩu bằng cách sử dụng các tệp chính. Chúng tôi có thể để máy tính tạo hai tệp chính - một tệp công khai thuộc về máy chủ từ xa và một tệp riêng trên máy tính của bạn và cần được bảo mật - và chúng sẽ được sử dụng thay cho mật khẩu. Khá tiện lợi phải không??

    Trên máy tính của bạn, nhập lệnh sau:

    ssh-keygen -t rsa

    Điều này sẽ tạo ra hai khóa và đặt chúng vào:

    ~ / .ssh /

    với tên là id id_rsa, ví dụ cho khóa riêng của bạn và và id id_rsa.pub, ví dụ cho khóa công khai của bạn.

    Sau khi nhập lệnh, bạn sẽ được hỏi nơi lưu khóa. Bạn có thể nhấn Enter để sử dụng các giá trị mặc định nêu trên.

    Tiếp theo, bạn sẽ được yêu cầu nhập cụm mật khẩu. Nhấn Enter để để trống, sau đó làm lại khi nó yêu cầu xác nhận. Bước tiếp theo là sao chép tệp khóa công khai vào máy tính từ xa của bạn. Bạn có thể sử dụng scp để làm điều này:

    Đích cho khóa công khai của bạn là trên máy chủ từ xa, trong tệp sau:

    ~ / .ssh / ủy quyền_keys2

    Các khóa công khai tiếp theo có thể được thêm vào tệp này, giống như tệp ~ / .ssh / unknown_hosts. Điều này có nghĩa là nếu bạn muốn thêm một khóa công khai khác cho tài khoản của mình trên máy chủ này, bạn sẽ sao chép nội dung của tệp id_rsa.pub thứ hai vào một dòng mới trên tệp ủy quyền hiện có.

    Cân nhắc về Bảo mật

    Đây không phải là kém an toàn hơn một mật khẩu?

    Trong một ý nghĩa thực tế, không thực sự. Khóa riêng được tạo được lưu trữ trên máy tính bạn đang sử dụng và nó không bao giờ được chuyển, thậm chí không được xác minh. CHỈ khóa riêng này khớp với MỘT khóa chung đó và kết nối cần được bắt đầu từ máy tính có khóa riêng. RSA khá an toàn và sử dụng độ dài 2048 bit theo mặc định.

    Về lý thuyết, nó thực sự khá giống với việc sử dụng mật khẩu của bạn. Nếu ai đó biết mật khẩu của bạn, bảo mật của bạn sẽ biến mất khỏi cửa sổ. Nếu ai đó có tệp khóa riêng của bạn, thì bảo mật sẽ bị mất đối với bất kỳ máy tính nào có khóa mu phù hợp, nhưng họ cần truy cập vào máy tính của bạn để lấy nó.

    Điều này có thể an toàn hơn?

    Bạn có thể kết hợp mật khẩu với các tệp chính. Thực hiện theo các bước trên, nhưng nhập cụm mật khẩu mạnh. Bây giờ, khi bạn kết nối qua SSH hoặc sử dụng SCP, bạn sẽ cần tệp khóa riêng tư thích hợp cũng như cụm mật khẩu thích hợp.

    Khi bạn nhập cụm mật khẩu của mình một lần, bạn sẽ không được hỏi lại cho đến khi bạn đóng phiên. Điều đó có nghĩa là lần đầu tiên bạn SSH / SCP, bạn sẽ cần nhập mật khẩu của mình, nhưng tất cả các hành động tiếp theo sẽ không yêu cầu. Khi bạn đăng xuất khỏi máy tính (không phải máy tính từ xa) hoặc đóng cửa sổ thiết bị đầu cuối của bạn, sau đó bạn sẽ phải nhập lại. Theo cách này, bạn không thực sự hy sinh bảo mật, nhưng bạn cũng không bị quấy rối vì mật khẩu mọi lúc.

    Tôi có thể sử dụng lại cặp khóa công khai / riêng tư không?

    Đây là một ý tưởng thực sự xấu. Nếu ai đó tìm thấy mật khẩu của bạn và bạn sử dụng cùng một mật khẩu cho tất cả các tài khoản của mình thì giờ đây họ có quyền truy cập vào tất cả các tài khoản đó. Tương tự, tập tin khóa riêng của bạn cũng siêu bí mật và quan trọng. (Để biết thêm thông tin, hãy xem Cách phục hồi sau khi mật khẩu email của bạn được thỏa hiệp)

    Tốt nhất là tạo các cặp khóa mới cho mọi máy tính và tài khoản bạn muốn liên kết. Bằng cách đó, nếu một trong các khóa riêng của bạn bị bắt bằng cách nào đó, thì bạn sẽ chỉ thỏa hiệp một tài khoản trên một máy tính từ xa.

    Điều thực sự quan trọng cần lưu ý là tất cả các khóa riêng của bạn được lưu trữ ở cùng một nơi: trong ~ / .ssh / trên máy tính của bạn, bạn có thể sử dụng TrueCrypt để tạo một thùng chứa được mã hóa an toàn, sau đó tạo liên kết tượng trưng trong ~ / .ssh / danh mục. Tùy thuộc vào những gì tôi đang làm, tôi sử dụng phương pháp siêu an toàn siêu hoang tưởng này để giúp tôi thoải mái.


    Bạn đã sử dụng SCP trong bất kỳ kịch bản? Bạn có sử dụng các tập tin quan trọng thay vì mật khẩu? Chia sẻ chuyên môn của riêng bạn với các độc giả khác trong các ý kiến!