Cách thiết lập máy chủ SFTP trên Linux

Hầu hết mọi người thích các tiện ích như FileZilla, WinSCP hoặc các chương trình FTP khác khi họ cần chuyển tệp đến hoặc từ máy chủ Linux. SFTP là một giải pháp thay thế an toàn cho giao thức FTP ban đầu. Nó thực hiện hầu hết các chức năng giống như phiên bản không an toàn của nó, nhưng có thêm một lớp mã hóa. Để thực hiện điều này, nó sử dụng giao thức SSH cung cấp cho nó khả năng mã hóa. Thiết lập máy chủ SFTP trên hệ thống Linux của bạn bao gồm nhiều bước, chúng tôi sẽ giới thiệu ở đây.

SFTP là gì?

SFTP (Secure File Transfer Protocol – Giao thức truyền tệp an toàn) là một giao thức mạng để truyền tệp từ máy khách đến máy chủ. Không giống như FTP (File Transfer Protocol – Giao thức truyền tệp), SFTP sử dụng giao thức SSH (Secure Shell – Vỏ bảo mật) để mã hóa dữ liệu được gửi. Nó được phát triển bởi các nhà khoa học máy tính, Tatu Ylönen và Sami Lehtinen, những người cũng chịu trách nhiệm phát triển giao thức SSH trong những năm 1990. Tuy nhiên, phiên bản hiện đại được phát triển bởi IETF (Internet Engineering Task Force – Lực lượng Đặc nhiệm Kỹ thuật Internet).

Nó có thể được mô tả như một giao thức hệ thống tệp từ xa, mặc dù tên của nó cho thấy nó chỉ thực hiện các hoạt động truyền tệp. Khi gửi tệp bằng SFTP từ máy khách đến máy chủ nhận, dữ liệu sẽ được mã hóa trước khi gửi đến đích. Nếu dữ liệu đang được gửi bị chặn bởi “man-in-the-middle – người trung gian”, thì bên thứ ba này không thể dễ dàng giải mã được.

Cài đặt SSH và Máy chủ OpenSSH

Chúng tôi đang bắt đầu quá trình thiết lập máy chủ SFTP bằng cách cài đặt SSH và máy chủ OpenSSH.

Hầu hết các bản cài đặt Linux đều đã được cài đặt SSH theo mặc định, nhưng trong trường hợp hệ thống của bạn không có nó, bạn có thể cài đặt nó bằng cách sử dụng lệnh apt của Công cụ đóng gói nâng cao (SSH):

Sau khi cài đặt SSH, bạn có thể kiểm tra phiên bản của nó bằng cách chạy lệnh ssh có cờ -V:

Ví dụ: bạn có thể cài đặt Máy chủ OpenSSH trên hệ thống Debian và Ubuntu bằng cách sử dụng lệnh apt:

Bạn có thể làm điều tương tự trên Arch Linux bằng cách sử dụng lệnh pacman:

Tạo Người dùng, Nhóm và Thư mục cho SFTP

Một khuyến nghị phổ biến là các dịch vụ khác nhau trên Linux nên sử dụng người dùng, nhóm và thư mục của riêng họ.

Bắt đầu bằng cách tạo một nhóm cho những người dùng SFTP. Điều này được thực hiện bằng cách sử dụng lệnh groupadd:

Bạn có thể tạo người dùng và thêm người dùng đó vào nhóm đã được tạo bằng cách sử dụng lệnh useradd và cờ -g của nó, được sử dụng để chỉ định nhóm mà người dùng sẽ là một phần của:

Sau khi tạo người dùng, hãy gán mật khẩu cho người dùng bằng cách sử dụng lệnh passwd:

Tạo thư mục mặc định cho người dùng mới được tạo:

Sử dụng lệnh chown để cung cấp cho thư mục các quyền cần thiết:

sudo chown -R root:sftp_group /data/sftp_user

Cấu hình máy chủ SSH

Bước tiếp theo để thiết lập máy chủ SFTP là định cấu hình máy chủ SSH mà nó sẽ sử dụng.

Chỉnh sửa tệp “sshd_config” được tìm thấy trong “/etc/ssh/” để người dùng đang sử dụng trình bao SFTP khi kết nối với máy chủ thay vì trình bao của SSH.

Bạn có thể dễ dàng chỉnh sửa tệp bằng trình chỉnh sửa Nano thường được sử dụng trên nhiều bản cài đặt Linux theo mặc định:

Tìm cuối tệp và thêm thông tin sau:

Khởi động lại dịch vụ SSH:

(Tùy chọn) Thay đổi Cổng SFTP

Nếu bạn muốn thay đổi cổng mà máy chủ SFTP đang sử dụng từ giá trị mặc định là 22 thành tùy chọn bạn đã chọn, bạn sẽ cần chỉnh sửa lại tệp “sshd_config”.

Một lần nữa chỉnh sửa tệp bằng cách sử dụng trình chỉnh sửa Nano:

Tìm một dòng trong tệp có giá trị cổng mặc định là 22:

Bạn có thể xóa dấu thăng (#) được sử dụng để nhận xét dòng và thêm lựa chọn giá trị cổng của bạn. Trong trường hợp của tôi, tôi đang thay đổi giá trị thành 1111:

Bây giờ chỉ cần lưu tệp

và khởi động lại máy chủ:

Đăng nhập và Sử dụng Máy chủ

Với máy chủ được cài đặt và cấu hình, nó đã sẵn sàng để sử dụng. Bạn có thể dễ dàng tải tệp lên và tải xuống, tất cả đều có phiên mã hóa do SSH cung cấp.

Trước khi đăng nhập, bạn không cần phải xem hướng dẫn sử dụng được cung cấp:

Đăng nhập vào máy chủ bằng cách cung cấp tên người dùng và IP máy chủ hoặc tên máy chủ ở định dạng sau:

Ngoài ra, bạn có thể chỉ định cổng mà máy chủ SFTP của bạn đang sử dụng (mặc định là 22) bằng cách sử dụng cờ -P:

Khi bạn đăng nhập, bạn sẽ được chào đón bằng một trình bao SFTP.

Xem sách hướng dẫn bằng cách gõ help.

Tải tập tin

Để tải xuống tệp:

Ví dụ:

Thao tác này sẽ tải xuống thư mục hiện tại của bạn – thư mục bạn đã ở cục bộ trước khi đăng nhập vào máy chủ. Để tải xuống một thư mục cục bộ cụ thể:

Để sao chép thư mục, bạn phải thêm tham số -r, viết tắt của đệ quy, vào lệnh.

Hãy nhớ thêm tên cho thư mục mới mà bạn muốn tạo cục bộ, chẳng hạn như “/home/username/Desktop/bin” trong trường hợp này. Nếu bạn sử dụng get -r /bin /home/username/Desktop, các tệp sẽ được sao chép trực tiếp trên Desktop. Lưu ý rằng t là các tệp được sao chép chứ không phải chính thư mục.

Tải lên tệp

Tải lên các tệp hoặc thư mục tuân theo các nguyên tắc tương tự. Ngoại lệ duy nhất là các đường dẫn bị đảo ngược, nghĩa là trước tiên bạn chỉ định tệp / thư mục cục bộ, sau đó là đường dẫn từ xa.

Để bắt đầu, hãy tải tệp lên máy chủ bằng cách sử dụng lệnh put:

Khi tải lên các thư mục (đệ quy), hãy nhớ rằng quy tắc tương tự từ phần trước cũng áp dụng: đó thực sự là các tệp trong thư mục được sao chép chứ không phải chính thư mục đó. Chỉ định tên mới cho thư mục mà bạn muốn sao chép các tệp đó vào.

Điều này tạo ra một thư mục mới có tên là “bin” ở phía từ xa.

Tiếp tục chuyển và sử dụng các đường dẫn có khoảng cách

Khi bạn chuyển một tệp lớn bị gián đoạn, bạn có thể tiếp tục bằng cách thay thế lệnh trước đó bằng reputvà reget. Chỉ cần đảm bảo rằng bạn sử dụng cùng một đường dẫn mà bạn đã sử dụng lần trước để nguồn và đích khớp chính xác.

Để tiếp tục chuyển thư mục, chỉ cần thêm tham số -r:

Nếu đường dẫn đến tệp chứa khoảng trắng, hãy đặt nó trong dấu ngoặc kép:

Sử dụng khác

Bạn có thể liệt kê các tệp và thư mục bằng cách sử dụng lslệnh:

Quyền của tệp cũng có thể thay đổi bằng cách sử dụng chmodlệnh:

Ngoài ra, bạn có thể tạo một thư mục mới bằng cách sử dụng lệnh mkdir:

Các câu hỏi thường gặp

1. Tôi có cần cài đặt ứng dụng SFTP không?

Trong hầu hết các trường hợp là không, vì hầu hết các hệ thống Linux đi kèm với một ứng dụng khách SFTP dựa trên thiết bị đầu cuối được cài đặt theo mặc định.

2. Tôi có thể sử dụng xác thực khóa công khai không?

Có, bạn có thể sử dụng xác thực khóa công khai thay vì mật khẩu làm phương pháp xác thực. Việc thiết lập nó khá đơn giản và nó cung cấp bảo mật bổ sung cho máy chủ của bạn.

3. Tôi có thể lưu trữ đồng thời một máy chủ SSH không?

Vâng. Tuy nhiên, bạn sẽ cần đảm bảo rằng máy chủ SFTP của bạn không sử dụng cùng một cổng với máy chủ SSH .

Đọc tiếp

Có thể bạn quan tâm

Có thể bạn quan tâm