Computer >> Máy Tính >  >> Hệ thống >> Linux

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

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 (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 (Giao thức truyền tệp), SFTP sử dụng giao thức SSH (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 (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 "người trung gian", thì bên thứ ba này sẽ không thể dễ dàng giải mã được dữ liệu đó.

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ó, bạn có thể cài đặt nó bằng cách sử dụng apt của Công cụ đóng gói nâng cao lệnh:

sudo apt install 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 ssh lệnh bằng -V cờ:

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

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 apt lệnh:

sudo apt install openssh-server

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

sudo pacman -S openssh

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 groupadd lệnh:

sudo groupadd sftp_group

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 useradd lệnh và -g của nó cờ, được sử dụng để chỉ định nhóm mà người dùng sẽ tham gia:

sudo useradd -g sftp_group sftp_user

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 passwd lệnh:

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

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

sudo mkdir -p /data/sftp_user/uploaded_files

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

sudo chown -R root:sftp_group /data/sftp_user
sudo chown -R sftp_user:sftp_group /data/sftp_user/uploaded_files

Định 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ó 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 có trên nhiều bản cài đặt Linux theo mặc định:

sudo nano /etc/ssh/sshd_config

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

Match Group sftp_group
ChrootDirectory /data/%u
ForceCommand internal-sftp
Cách thiết lập máy chủ SFTP trên Linux

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

sudo systemtl restart sshd

(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:

sudo nano /etc/ssh/sshd_config

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

#Port 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:

Port 1111

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

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

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

sudo systemctl restart sshd

Đă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 qua hướng dẫn được cung cấp:

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

Đă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:

sftp USER@HOST

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 -P cờ:

sftp USER@HOST -P <PORT>

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 nhập help .

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

Tải xuống tệp

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

get /path/to/file/on/server

Ví dụ:

get /bin/ls

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ể:

get /path/to/file/on/server /path/to/local/folder

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

get -r /bin /home/username/Desktop/bin
Cách thiết lập máy chủ SFTP trên Linux

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 tin sẽ được sao chép trực tiếp trên Desktop. Lưu ý rằng đó 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 put lệnh:

put /path/to/local/content /path/to/remote/location

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 bạn muốn sao chép các tệp đó vào.

put -r /home/username/Desktop/bin bin

Đ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 Truyền và Sử dụng Đường dẫn Chứa Khoảng trống

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 reputreget . 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.

reget /path/to/file/on/server /path/to/local/file
reput /path/to/local/file /path/to/file/on/server

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

reput -r /home/username/Desktop/bin bin

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:

put "/home/username/My Documents/Files"

Các Công 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 ls lệnh:

ls -l

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

chmod <PERMISSION> <FILE>

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:

mkdir <DIRECTORY_NAME>

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?

Đú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.