Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Cách Chuyển File An Toàn Dùng SCP Trong Linux

Khi truy cập Linux server, bạn có vài option. Nếu server có UI, bạn có thể dùng VNC, nhưng option phổ biến hơn là login vào headless server với Secure Shell, hoặc SSH. Đây là protocol encrypted, secure cho bạn access remote system qua SSH client. Tuy nhiên, bạn có thể chỉ muốn gửi file đến server. Cho đó, bạn có thể dùng chương trình Secure Copy, hoặc SCP, chạy qua protocol SSH kiên cường để nhanh chóng transfer file qua mạng đến remote system. Ở đây chúng tôi chỉ cách transfer file an toàn dùng SCP trong Linux.

Cấu Hình SSH (Configuring SSH)

Trên server (hoặc remote system bạn muốn truy cập), bạn cần cài SSH server. Phổ biến nhất trên Linux là OpenSSH server. Để cài, chạy một trong lệnh sau:

# Debian/Ubuntu-based server
sudo apt install openssh-server
# Fedora/Centos
sudo dnf install openssh-server

Tùy distro, bạn có thể cần allow SSH qua software firewall. Trên Ubuntu, vấn đề này không tồn tại, nhưng trên CentOS, bạn cũng phải chạy:

sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload

Lúc này, bạn cần SSH client. Trên hầu hết distro, bạn có OpenSSH client installed. Nhưng, nếu không, cài nó với:

# Debian/Ubuntu-based distro
sudo apt install openssh-client
# Fedora
sudo dnf install openssh-client

Kết Nối Hệ Thống Qua SSH

Hãy chắc SSH hoạt động trước khi thử SCP. Trước khi connect qua SSH, bạn cần discover IP address của server. Trên server graphical, IP hiển thị trong Network applet trong System Settings. Trên hầu hết server, dùng lệnh ip trên terminal.

ip a s

Trong output, tìm dòng bắt đầu inet dưới eth0 hoặc enp1s0, tùy network interface kết nối. Trong trường hợp tôi, là 192.168.122.201.

Để test SSH connection, chuyển sang máy client Linux và gõ:

ssh user@192.168.122.201

Thay "user" bằng username thực tế trong server.

Nhập password account đó, và bạn đã kết nối. Nếu có câu hỏi về "authenticity of host can't be established", trả lời "yes". Đó là security check đảm bảo bạn connect đến server thực không phải impostor. Bạn nên thấy cùng prompt như login trực tiếp server, nghĩa là connection successful. Bạn cũng nên config SSH connection cho maximum security trước khi tiến bước tiếp.

Dùng SCP Transfer File

Bây giờ bạn đã test SSH connection, bạn có thể bắt đầu copy file giữa hai máy. Secure copying đạt được qua lệnh scp. Format cơ bản của lệnh scp:

scp /PATH/TO/FILE USER@IP-ADDRESS:PATH/TO/DESIRED/DESTINATION

Ví dụ, copy file "backup.txz" từ local machine đến folder "backups" trong home directory của user "maketecheasier" trên remote server IP 192.168.1.101, dùng:

scp backup.txz maketecheasier@192.168.122.201:~/backups/

Giống khi connect dùng ssh, bạn sẽ được prompt password. Bạn không prompt username, vì đã specified trong command.

Bạn cũng có thể dùng wild card như:

scp *.txz maketecheasier@192.168.122.201:~/backups/

Để copy file từ remote server về local machine, chỉ cần đảo parameter:

scp maketecheasier@192.168.122.201:~/backups/backup.txz .

Chú ý dấu chấm cuối command nghĩa là "current directory", như với cp hoặc mv tiêu chuẩn. Bạn có thể chỉ định directory khác nếu muốn.

scp -r maketecheasier@192.168.122.201:~/backups/ backups-from-server/

Và same với wild card:

scp maketecheasier@192.168.122.201:~/backups/*.txz .

Để recursively copy thư mục đến remote server, dùng option -r:

scp -r backups/ maketecheasier@192.168.122.201:~/backups/

Và để recursive copy thư mục từ remote server về local machine:

scp -r scp -r maketecheasier@192.168.122.201:~/backups/ .

Các Lệnh SCP Khác Để Thử

Để tiến xa hơn, thử experiment với option -C, enable compression khi copy, hoặc -l, limit bandwidth khi copy.

Để transfer file không phải type password mỗi lần, bạn cũng có thể generate private SSH key để connect server.