Mục lục [Ẩn]
- Cú pháp cơ bản của lệnh SCP
- Thực hiện truyền tệp nhanh hơn bằng cách sử dụng tham số -c
- Thay đổi mật mã SCP để mã hóa tệp
- Hạn chế sử dụng băng thông với lệnh SCP
- Chỉ định cổng cụ thể để sử dụng với SCP
- Sao chép các mục bên trong thư mục một cách đệ quy
- Vô hiệu hóa đồng hồ đo tiến trình và cảnh báo
- Sao chép tệp bằng SCP thông qua Proxy
- Chọn tệp SSH_Config khác
Các quản trị viên Linux nên dần làm quen với môi trường CLI. Lý do là vì chế độ GUI trong máy chủ Linux không được cài đặt rộng rãi. SSH có thể là giao thức phổ biến nhất cho phép quản trị viên Linux quản lý các máy chủ thông qua cách bảo mật từ xa. Tích hợp lệnh SSH có lệnh SCP. SCP được sử dụng để sao chép (các) tệp giữa các máy chủ một cách an toàn.
Cú pháp cơ bản của lệnh SCP
Lệnh dưới đây sẽ được đọc là “sao chép source_file_name” vào “destination_folder” tại “destination_host” bằng cách sử dụng “tài khoản tên người dùng”.
scp source_file_name username@destination_host:destination_folder
tên người dùng scp source_file_name @ destination_host: destination_folder
Có nhiều tham số trong lệnh SCP mà bạn có thể sử dụng. Dưới đây là các thông số có thể sử dụng thường xuyên.
Cung cấp thông tin chi tiết của quá trình SCP sử dụng tham số -v
Về cơ bản lệnh SCP không có tham số sẽ sao chép các tệp ở chế độ nền. Người dùng sẽ không thấy gì trừ khi quá trình được thực hiện hoặc một số lỗi xuất hiện.
Bạn có thể sử dụng tham số “-v” để in thông tin gỡ lỗi ra màn hình. Nó có thể giúp bạn gỡ lỗi các vấn đề về kết nối, xác thực và cấu hình.
pungki@mint ~/Documents $ scp -v Label.pdf mrarianto @@ 202.xxx:.
Đầu ra mẫu
SCP Hiển thị tiến trình trong khi sao chép tệp
Đang thực thi: chương trình /usr/bin/ssh host 202.xxx, user marianto, lệnh scp -v -t.
OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 tháng 5 năm 2012
debug1: Đọc dữ liệu cấu hình /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config dòng 19: Áp dụng các tùy chọn cho *
debug1: Connecting to 202.xxx [202. xxx] port 22.
debug1: Kết nối được thiết lập.
debug1: Máy chủ '202.xxx' được biết và khớp với khóa máy chủ RSA.
debug1: Tìm thấy khóa trong /home/pungki/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: Phương pháp xác thực tiếp theo: password của
mrarianto@202.xxx's password:
debug1: Xác thực thành công (mật khẩu).
Đã xác thực thành 202.xxx ([202.xxx]: 22).
Chế độ gửi tệp: C0770 3760348 Label.pdf
Sink: C0770 3760348 Label.pdf
Label.pdf 100% 3672KB 136.0KB/s 00:27
Đã chuyển: đã gửi 3766304, nhận được 3000 byte, trong 65,2 giây
Byte mỗi giây: gửi 57766,4, nhận được 46,0
debug1: Thoát trạng thái 0
Cung cấp những lần sửa đổi, thời gian truy cập và các phương thức từ các tập tin gốc
Tham số “-p” sẽ giúp bạn thực hiện điều này. Thời gian ước tính và tốc độ kết nối sẽ xuất hiện trên màn hình.
pungki@mint ~/Documents $ scp -p Label.pdf marianto@202.xxx:.
Đầu ra mẫu
SCP Ước tính thời gian cần thiết để sao chép tệp lớn
Mật khẩu của marianto@202.xxx:
Label.pdf 100% 3672KB 126,6KB/s 00:29
Thực hiện truyền tệp nhanh hơn bằng cách sử dụng tham số -c
Một trong những tham số có thể truyền tệp của bạn nhanh hơn là các tham số “C”. Tham số “C” sẽ nén tập tin của bạn trong lúc truyền đi. Điều duy nhất là nén tệp chỉ xảy ra trong network. Khi tệp đã đến máy chủ đích, tệp sẽ trở lại kích thước ban đầu như trước khi quá trình nén diễn ra.
Hãy xem các lệnh này. Nó đang sử dụng một tệp duy nhất có dung lượng 93MB.
pungki@mint ~/Documents $ scp -pv messages.log mrarianto@202.xxx:.
Đầu ra mẫu
SCP Truyền tệp mà không cần nén
Thực thi: chương trình /usr/bin/ssh host 202.xxx, user mrarianto, lệnh scp -v -p -t.
OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 tháng 5 năm 2012
debug1: Đọc dữ liệu cấu hình /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config dòng 19: Áp dụng các tùy chọn cho *
debug1: Connecting to 202.xxx [202. xxx] port 22.
debug1: Kết nối được thiết lập.
debug1: danh tính tệp /home/pungki/.ssh/id_rsa type -1
debug1: Tìm thấy khóa trong /home/pungki/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature đúng
debug1: Đang thử khóa riêng: /home/pungki/.ssh/id_rsa
debug1: Phương pháp xác thực tiếp theo: mật khẩu
mrarianto@202.xxx's password:
debug1: Xác thực thành công (mật khẩu).
Đã xác thực thành 202.xxx ([202.xxx]: 22).
debug1: Gửi lệnh: scp -v -p -t.
Tệp mtime 1323853868 atime 1380425711
Đang gửi dấu thời gian tệp: T1323853868 0 1380425711 0
messages.log 100% 93MB 58,6KB/s 27:05
Đã chuyển: đã gửi 97614832, nhận được 25976 byte, trong 1661,3 giây
Byte mỗi giây: đã gửi 58758,4, nhận được 15,6
debug1: Thoát trạng thái 0
Việc sao chép các tập tin không có tham số -C sẽ mất 1661,3 giây. Bạn có thể so sánh kết quả với lệnh dưới đây bằng cách sử dụng tham số “-C”.
pungki@mint ~ /Documents $ scp -Cpv messages.log mrarianto@202.xxx:.
Đầu ra mẫu
SCP Truyền tệp nhanh hơn bằng cách sử dụng compression
thực thi: chương trình /usr/bin/ssh host 202.xxx, user mrarianto, lệnh scp -v -p -t.
OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 tháng 5 năm 2012
debug1: Đọc dữ liệu cấu hình /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config dòng 19: Áp dụng các tùy chọn cho *
debug1: Connecting to 202.xxx [202. xxx] port 22.
debug1: Kết nối được thiết lập.
debug1: tệp nhận dạng /home/pungki/.ssh/id_rsa loại -1
debug1: Máy chủ '202.xxx' được biết và khớp với khóa máy chủ RSA.
debug1: Tìm thấy khóa trong /home/pungki/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature true
debug1: Phương pháp xác thực tiếp theo: publickey
debug1: Thử khóa riêng: /home/pungki/.ssh/id_rsa
debug1: Phương thức xác thực tiếp theo: password
mrarianto@202.xxx's password:
debug1: Bật nén ở mức 6.
debug1: Xác thực thành công (mật khẩu).
Đã xác thực thành 202.xxx ([202.xxx]: 22).
debug1: channel 0: new [client-session]
debug1: Gửi lệnh: scp -v -p -t.
Tệp mtime 1323853868 atime 1380428748
Gửi dấu thời gian tệp: T1323853868 0 1380428748 0
Chìm: T1323853868 0 1380428748 0
Chế độ gửi tệp: C0600 97517300 tin nhắn. Nhật ký tin nhắn.log
100% 93MB 602,7KB/s 02:38
Đã chuyển: đã gửi 8905840 trong 162,5 giây
Byte mỗi giây: đã gửi 54813,9, nhận được 97,0
debug1: Trạng thái thoát 0
debug1: Nén gửi đi: dữ liệu thô 97571111, nén 8806191, yếu tố 0,09
debug1: Nén đến: dữ liệu thô 7885, nén 3821, hệ số 0,48
Như bạn có thể thấy, khi bạn đang sử dụng tính năng nén, quá trình truyền dữ liệu được thực hiện trong 162,5 giây. Nó nhanh hơn 10 lần so với việc không sử dụng tham số “-C”. Nếu bạn đang sao chép nhiều tệp trên mạng, tham số -C sẽ giúp bạn giảm tổng thời gian bạn cần.
Điều mà chúng ta cần lưu ý là phương pháp nén sẽ không hoạt động trên bất kỳ tệp nào. Khi tệp nguồn đã được nén, bạn sẽ không tìm thấy bất kỳ cải thiện nâng cao nào ở đó. Các tệp như tệp .zip, .rar, hình ảnh và tệp .iso sẽ không bị ảnh hưởng bởi tham số “-C”.
Thay đổi mật mã SCP để mã hóa tệp
Theo mặc định, SCP sử dụng “AES-128” để mã hóa tệp. Nếu bạn muốn thay đổi mật mã khác để mã hóa nó, bạn có thể sử dụng tham số -c. Hãy xem lệnh này.
pungki@mint ~/Tài liệu $ scp -c 3des Label.pdf mrarianto@202.xxx:.
Mật khẩu của mrarianto@202.xxx:
Label.pdf 100% 3672KB 282.5KB/s 00:13
Lệnh trên yêu cầu SCP sử dụng thuật toán 3des để mã hóa tệp. Hãy chú ý rằng tham số này sử dụng "-c" không phải "-C".
Hạn chế sử dụng băng thông với lệnh SCP
Một tham số khác có thể hữu ích là tham số -l. Thamsố “-l” sẽ hạn chế sử dụng băng thông.Sẽ rất hữu ích nếu bạn thực hiện một kịch bản tự động hóa để sao chép nhiều tệp, nhưng bạn không muốn rút hết băng thông của quá trình SCP.
pungki@mint ~/Documents $ scp -l 400 Label.pdf mrarianto@202.xxx:.
mật khẩu mrarianto@202.xxx's:
Label.pdf 100% 3672KB 50.3KB/s 01:13
Giá trị 400 đằng sau thamsố “-l” là trung bình mà chúng tôi giới hạn băng thông cho quá trình SCP chỉ 50KB /giây.Một điều cần nhớ là băng thông được chỉ định bằng Kilobits/giây (kbps). Có nghĩa là 8 bit bằng 1 byte.
Trong khi đó SCP được tính bằng Kilobyte/giây (KB/s). Vì vậy, nếu bạn muốn giới hạn băng thông của mình cho SCP tối đa chỉ là 50KB/s, bạn cần đặt nó thành 50 x 8 = 400.
Chỉ định cổng cụ thể để sử dụng với SCP
Thông thường, SCP sử dụng cổng 22 làm cổng mặc định. Nhưng vì lý do bảo mật, bạn có thể thay đổi cổng này thành cổng khác. Ví dụ: chúng tôi đang sử dụng cổng 2249. Sau đó, lệnh sẽ như thế này.
pungki@mint ~/Documents $ scp -P 2249 Label.pdf mrarianto@202.xxx:.
Mật khẩu của mrarianto@202.xxx:
Label.pdf 100% 3672KB 262.3KB/s 00:14
Đảm bảo rằng nó sử dụng chữ viết hoa “P” chứ không phải “p” vì “p” đã được sử dụng cho các chế độ và thời gian được bảo toàn.
Sao chép các mục bên trong thư mục một cách đệ quy
Đôi khi chúng ta cần sao chép thư mục và tất cả các tệp/thư mục bên trong nó. Sẽ tốt hơn nếu chúng ta có thể thực hiện nó trong 1 lệnh. SCP hỗ trợ tình huống đó bằng cách sử dụng tham số -r.
pungki@mint ~/Tài liệu $ scp -r tài liệu mrarianto@202.xxx:.
Mật khẩu của mrarianto@202.xxx:
Label.pdf 100% 3672KB 282,5KB/s 00:13
scp.txt 100% 10KB 9,8KB/s 00:00
Khi quá trình sao chép hoàn tất, tại máy chủ đích, bạn sẽ tìm thấy một thư mục có tên "Tài liệu" với tất cả các tệp của nó. Thư mục “tài liệu” được tạo tự động.
Vô hiệu hóa đồng hồ đo tiến trình và cảnh báo
Nếu bạn chọn không nhìn thấy đồng hồ đo tiến trình và thông báo cảnh báo/chẩn đoán từ SCP, bạn có thể vô hiệu hóa nó bằng cách sử dụng tham số -q. Đây là ví dụ:
pungki@mint ~/Documents $ scp -q Label.pdf mrarianto@202.xxx:.
Mật khẩu của mrarianto@202.xxx:
pungki @ mint ~/Documents $
Như bạn thấy, sau khi bạn nhập mật khẩu, không có thông tin nào về quá trình SCP. Sau khi quá trình hoàn tất, bạn sẽ thấy một thông báo nhắc lại.
Sao chép tệp bằng SCP thông qua Proxy
Máy chủ proxy thường được sử dụng trong môi trường văn phòng. Về cơ bản, SCP không được định cấu hình proxy. Khi môi trường của bạn sử dụng proxy, bạn phải “điều hướng” SCP làm việc với proxy.
Đây là tình huống. Địa chỉ proxy là 10.0.96.6 và cổng proxy là 8080. Proxy cũng triển khai xác thực người dùng. Đầu tiên, bạn cần tạo tệp “~/.ssh/config”. Thứ hai, bạn đặt lệnh này bên trong nó.
ProxyCommand /usr/bin/corkscrew 10.0.96.6 8080% h% p ~/.ssh/proxyauth
Sau đó, bạn cần tạo tệp có chứa “~/.ssh/proxyauth”.
myusername: mypassword
Sau đó, bạn có thể thực hiện SCP một cách minh bạch như bình thường.
Lưu ý rằng corkscrew có thể chưa được cài đặt trên hệ thống của bạn. Trên Linux Mint của tôi, trước tiên tôi cần cài đặt nó bằng cách sử dụng quy trình cài đặt Linux Mint tiêu chuẩn.
$ apt-get install corkscrew
Đối với các hệ thống dựa trên yum khác, người dùng có thể cài đặt corkscrew bằng lệnh yum sau.
# yum install corkscrew
Một điều nữa là vì tệp “~/.ssh/proxyauth” chứa “tên người dùng” và “mật khẩu” của bạn ở định dạng văn bản rõ ràng, hãy đảm bảo rằng chỉ bạn mới có thể truy cập tệp.
Chọn tệp SSH_Config khác
Đối với người dùng di động thường xuyên chuyển đổi giữa mạng công ty và mạng công cộng, sẽ rất khó khăn khi phải luôn thay đổi cài đặt trong SCP. Sẽ tốt hơn nếu chúng ta có thể đặt một tệp ssh_config khác để phù hợp với nhu cầu của mình.
Dưới đây là một tình huống mẫu
Proxy được sử dụng trong mạng công ty nhưng không sử dụng trong mạng công cộng và bạn thường xuyên chuyển đổi mạng.
pungki@mint ~/Documents $ scp -F/home/pungki/proxy_ssh_config Label.pdf
mrarianto@202.xxx :.
Mật khẩu của mrarianto@202.xxx:
Label.pdf 100% 3672KB 282.5KB/s 00:13
Theo mặc định, tệp ssh_config cho mỗi người dùng sẽ được đặt trong “~/.ssh/config“. Tạo một tệp cụ thể “ssh_config”có khả năng tương thích với proxy sẽ giúp chuyển đổi giữa các mạng dễ dàng hơn.
Khi bạn đang sử dụng mạng công ty, bạn có thể sử dụng tham số “-F”. Khi sử dụng mạng công cộng, bạn có thể bỏ qua tham số “-F”.
Đó là tất cả về SCP. Bạn có thể xem các trang về SCP để biết thêm chi tiết. Hãy để lại ý kiến và đề xuất dưới bài viết này nhé!
+ Fanpage: https://www.facebook.com/nhanhoacom
+ Chỉ đường: https://g.page/nhanhoacom
+ Chương trình khuyến mãi mới nhất: https://nhanhoa.com/khuyen-mai.html
————————————————————
CÔNG TY TNHH PHẦN MỀM NH N HÒA
Hotline: 1900 6680
Trụ sở chính: Tầng 4 - Tòa nhà 97-99 Láng Hạ, Đống Đa, Hà Nội
Tel: (024) 7308 6680 – Email: sales@nhanhoa.com
Chi nhánh TP. Hồ Chí Minh: 270 Cao Thắng (nối dài), Phường 12, Quận 10, Tp.HCM
Tel: (028) 7308 6680 – Email: hcmsales@nhanhoa.com
Chi nhánh Vinh - Nghệ An: Tầng 2 Tòa nhà Sài Gòn Sky, ngõ 26 Nguyễn Thái Học, phường Đội Cung, TP. Vinh, Nghệ An
Tel: 0915221384 – Email: contact@nhanhoa.com