Khi truy cập máy chủ Linux, bạn có một số tùy chọn. Nếu đó là máy chủ có giao diện người dùng, bạn có thể sử dụng VNC, nhưng tùy chọn phổ biến hơn là đăng nhập vào máy chủ không đầu bằng Secure Shell hoặc SSH. Đó là một giao thức được mã hóa, an toàn cho phép bạn truy cập vào hệ thống từ xa thông qua ứng dụng SSH. Tuy nhiên, bạn có thể chỉ muốn gửi một số tệp đến một máy chủ. Để làm được điều đó, bạn có thể sử dụng một chương trình được gọi là Bản sao an toàn, hoặc SCP, chạy trên giao thức SSH vững chắc để nhanh chóng chuyển các tệp qua mạng của bạn đến một hệ thống từ xa. Sau đây, chúng tôi hướng dẫn bạn cách chuyển tệp một cách an toàn bằng SCP trong Linux.
Định cấu hình SSH
Trên máy chủ của bạn (hoặc bất kỳ hệ thống từ xa nào bạn muốn truy cập), bạn sẽ cần cài đặt máy chủ SSH. Phổ biến nhất trên Linux là máy chủ OpenSSH. Để cài đặt nó, bạn có thể chạy một trong các lệnh sau:
# Debian/Ubuntu-based server sudo apt install openssh-server # Fedora/Centos sudo dnf install openssh-server
Tùy thuộc vào bản phân phối của bạn, bạn có thể cần cho phép SSH thông qua một số tường lửa phần mềm. Trên Ubuntu, sự cố này không tồn tại, nhưng trên CentOS, bạn cũng sẽ phải chạy các lệnh sau:
sudo firewall-cmd --add-service=ssh --permanent sudo firewall-cmd --reload
Tại thời điểm này, bạn sẽ cần một ứng dụng khách SSH. Trên hầu hết các bản phân phối, bạn đã cài đặt ứng dụng khách OpenSSH. Tuy nhiên, nếu bạn chưa cài đặt, hãy cài đặt nó bằng lệnh sau:
# Debian/Ubuntu-based distro sudo apt install openssh-client # Fedora sudo dnf install openssh-client
Kết nối với hệ thống của bạn qua SSH
Hãy đảm bảo SSH hoạt động trước khi cố gắng gây rối với SCP. Trước khi có thể kết nối qua SSH, bạn cần khám phá địa chỉ IP của máy chủ. Trên các máy chủ đồ họa, địa chỉ IP được hiển thị trong ứng dụng Mạng trong Cài đặt Hệ thống. Trên hầu hết các máy chủ, bạn nên sử dụng ip
lệnh trên thiết bị đầu cuối.
ip a s
Trong đầu ra, hãy tìm dòng bắt đầu bằng inet
dưới eth0
hoặc enp1s0
, tùy thuộc vào cách giao diện mạng của bạn được kết nối với hệ thống. Trong trường hợp của tôi, đó là 192.168.122.201.
Để kiểm tra kết nối SSH, hãy chuyển đến máy khách Linux và nhập:
ssh [email protected]
Thay đổi “người dùng” thành tên người dùng thực trong máy chủ.
Nhập mật khẩu của tài khoản đó và bạn đang kinh doanh. Nếu bạn nhận được câu hỏi về "tính xác thực của máy chủ lưu trữ không thể được thiết lập", chỉ cần trả lời "có" cho câu hỏi. Đây là một kiểm tra bảo mật được thiết kế để đảm bảo rằng bạn đang kết nối với máy chủ thực của mình chứ không phải là kẻ mạo danh. Bạn sẽ thấy lời nhắc tương tự xuất hiện trên hệ thống máy khách mà bạn thấy khi đăng nhập trực tiếp vào máy chủ và điều đó có nghĩa là kết nối của bạn đã thành công. Bạn cũng nên định cấu hình các kết nối SSH của mình để bảo mật tối đa trước khi tiếp tục bước tiếp theo.
Sử dụng SCP để truyền tệp
Bây giờ bạn đã kiểm tra kết nối SSH, bạn có thể bắt đầu sao chép tệp giữa hai máy. Sao chép an toàn được thực hiện bằng cách sử dụng scp
yêu cầu. Định dạng cơ bản của scp
lệnh là:
scp /PATH/TO/FILE USER@IP-ADDRESS:PATH/TO/DESIRED/DESTINATION
Ví dụ:để sao chép tệp “backup.txz” từ máy cục bộ vào thư mục “backup” trong thư mục chính của người dùng “maketecheasier” trên máy chủ từ xa có địa chỉ IP là 192.168.1.101, hãy sử dụng:
scp backup.txz [email protected]:~/backups/
Tương tự như khi bạn kết nối bằng ssh
, bạn sẽ được nhắc nhập mật khẩu. Bạn sẽ không được nhắc nhập tên người dùng, vì tên người dùng đã được chỉ định trong lệnh.
Bạn cũng có thể sử dụng các thẻ đại diện như sau:
scp *.txz [email protected]:~/backups/
Để sao chép tệp từ máy chủ từ xa sang máy cục bộ, chỉ cần đảo ngược các tham số:
scp [email protected]:~/backups/backup.txz .
Lưu ý dấu chấm ở cuối lệnh có nghĩa là "thư mục hiện tại", giống như với cp
chuẩn hoặc mv
các lệnh. Bạn có thể dễ dàng chỉ định một số thư mục khác nếu bạn muốn.
scp -r [email protected]:~/backups/ backups-from-server/
Và tương tự với các thẻ đại diện:
scp [email protected]:~/backups/*.txz .
Để sao chép đệ quy một thư mục tới một máy chủ từ xa, hãy sử dụng -r
tùy chọn:
scp -r backups/ [email protected]:~/backups/
Và để sao chép một cách đệ quy một thư mục từ máy chủ từ xa sang máy cục bộ, hãy sử dụng:
scp -r scp -r [email protected]:~/backups/ .
Các lệnh SCP khác cần thử
Để tiến bộ hơn nữa, hãy thử thử nghiệm với -C
tùy chọn này cho phép nén trong khi sao chép hoặc -l
tùy chọn này giới hạn băng thông trong quá trình sao chép.
Để chuyển tệp mà không cần nhập mật khẩu mọi lúc, bạn cũng có thể tạo khóa SSH riêng để kết nối với máy chủ của mình.