SCP (Secure Copy Protocol) dựa trên giao thức "Secure Shell", cung cấp phương thức truyền file giữa các máy tính. Cả hai có thể là remote host hoặc một localhost và một remote host. Gần đây nhiều người gặp lỗi "No Such File or Directory" khi copy file qua SCP.

Bài viết thảo luận nguyên nhân và cung cấp giải pháp khả thi. Hãy làm theo hướng dẫn cẩn thận để tránh xung đột.
Nguyên nhân gây lỗi "No Such File or Directory" trong SCP
Sau nhiều báo cáo, chúng tôi điều tra và liệt kê nguyên nhân:
- Lệnh không đúng: Lệnh copy file có thể không phù hợp tình huống. Lệnh copy file và copy thư mục khác nhau. Lệnh copy giữa 2 máy cấu hình khác nhau cũng thay đổi theo yêu cầu.
- Số cổng (Port Number): Có thể chưa chỉ định port number khi copy giữa 2 máy. Port đúng phải được forward trước khi copy.
- Đăng nhập sai: Nếu đang đăng nhập server và copy file ra desktop, server tìm đường dẫn local trong server gây lỗi. Đăng xuất khỏi server path để ngăn chặn.
- Quyền file: File chỉ có quyền "Read-Only" ngăn server truy cập và copy. Cần cấp quyền Read và Write.
Hiểu bản chất vấn đề, chuyển sang giải pháp. Thực hiện theo thứ tự trình bày để tránh xung đột.
Giải pháp 1: Sử dụng lệnh đúng
Phải dùng lệnh đúng tùy cấu hình host. Dưới đây là các lệnh cho các cấu hình khác nhau.
Copy từ Local Host sang Remote Host
Localhost là máy bạn truy cập vật lý. Remote Host là máy từ xa. Để chuyển file từ Localhost sang Remote Host:
$ scp "the_file" your_username@the_remote_host:the/path/to/the/directory
Ví dụ copy file "Alexa.txt":
$ scp Alexa.txt your_username@remotehost.edu:/some/remote/directory
Copy cả thư mục:
$ scp -r "the_directory_to_copy" your_username@the_remote_host:the/path/to/the/directory/to/copy/to
Ví dụ copy thư mục "Alexa":
$ scp -r foo your_username@remotehost.edu:/some/remote/directory/bar
Copy từ Remote Host sang Local Host
Lệnh khác khi copy từ Remote Host về Local Host:
Copy một File:
$ scp your_username@the_remote_host:the_file /your/local/directory
Copy file "Alexa.txt":
$ scp your_username@the_remote_host:Alexa.txt /your/local/directory
Giải pháp 2: Xác định Port Number
Phải xác định Port Number của remote host trước khi copy. Thêm port number khi bắt đầu copy:
$ scp -P port_number your_username@the_remote_host:the_file /your/local/directory
Lệnh này dùng cho cả copy đến và từ remote host. Chỉ cần thêm "-P (Port number)" sau "$ scp".
Giải pháp 3: Thay đổi quyền限 (Permissions)
Cấp quyền thích hợp cho file khi copy giữa máy tính. Quy trình thay đổi quyền file:
- Right-click vào file cần copy.
- Chọn "Properties" > tab "Security".

- Đảm bảo tất cả quyền cho "System" và "Administrator".

Lưu ý: Cũng đảm bảo không đăng nhập vào server path khi copy file.