Tôi đang chạy ứng dụng khách PuTTY trên máy Windows để kết nối thành công với hộp Linux. Bây giờ tôi muốn có thể sao chép một tệp từ máy Linux theo đường dẫn /home/ubuntu/myfile
sang C:/Users/Anshul/Desktop
trên máy tính cục bộ của tôi. Người dùng tại máy Windows là anshul
. Tôi đang đưa ra lệnh sau trên PuTTY nhưng nó không hoạt động:
scp /home/ubuntu/myfile ip_address_of_windows_machine:C:/Users/Anshul/Desktop
Tôi nghĩ rằng đường dẫn cho máy Windows là sai. Xin hãy giúp đỡ vì tôi đã đập đầu vào một số lượng lớn các diễn đàn nhưng dường như không có đường dẫn chính xác nào cho máy chủ Windows. Không đề xuất các tùy chọn thay thế như WinScp
Tải xuống pscp
từ trang tải xuống PuTTY , sau đó sử dụng nó từ máy Windows Windows như thế này:
pscp [email protected]_of_linux_machine:/home/ubuntu/myfile.ext C:\Users\Name\Downloads
Nó sẽ hỏi bạn về mật khẩu tên người dùng của máy Linux, sau đó thực hiện sao chép cho bạn.
Hãy thử điều này, nó thực sự hoạt động.
$ scp [email protected]_Host_ip:/home/ubuntu/myfile /cygdrive/c/Users/Anshul/Desktop
Và để sao chép tất cả các tập tin
$ scp -r [email protected]_Host_ip:/home/ubuntu/ *. * /cygdrive/c/Users/Anshul/Desktop
Windows không hỗ trợ SSH/SCP/SFTP
nguyên bản. Bạn đang chạy một ứng dụng máy chủ SSH trên máy chủ Windows đó? Nếu vậy, một trong các tùy chọn cấu hình có thể là nơi gốc và bạn sẽ chỉ định các đường dẫn liên quan đến gốc đó. Trong mọi trường hợp, hãy kiểm tra tài liệu cho ứng dụng máy chủ SSH bạn đang chạy trong Windows.
Hoặc, sử dụng smbclient
để đẩy tệp lên chia sẻ Windows.
Cái này làm việc cho tôi.
scp /home/ubuntu/myfile [email protected]_of_windows_machine:/C:/Users/Anshul/Desktop
IMHO, bạn sẽ sử dụng một cái gì đó như sau
scp -r [email protected]:Path/To/File .
.
sẽ sao chép File
vào thư mục mặc định cục bộ của chương trình của bạn . Ví dụ: sử dụng GitBash, việc này sẽ lưu Tệp vào thư mục công việc được định cấu hình của tôi trong ổ D :.
Truy cập từ Windows bằng bảng điều khiển Git Bash:
scp [email protected]:/etc/../your-file "C:\Users\XXX\Download"
Mã của bạn không hoạt động vì c:/hoặc d:/hoàn toàn sai đối với linux chỉ sử dụng/mnt/c hoặc/mnt/c
Từ bash windows10-ub Ubuntu cục bộ của bạn sử dụng lệnh này:
để tải xuống: (từ thư mục máy chủ từ xa của bạn đến d:/ubfox):
scp [email protected]:/folder/file.txt /mnt/d/ubuntu
Sau đó nhập mật khẩu máy chủ từ xa của bạn nếu có nhu cầu.
để tải lên: (từ d:/ubfox đến máy chủ từ xa):
scp /mnt/d/ubuntu/file.txt [email protected]:/folder/file.txt
Sau đó nhập mật khẩu máy chủ từ xa của bạn nếu có nhu cầu . Lưu ý: Tôi đã thử nghiệm và nó đã hoạt động.
Đối với tất cả, những người đã cài đặt GiT hoàn toàn với "Git Bash": Bạn chỉ có thể viết:
scp [email protected]_addres:/location/to/folders/file.tar .
(có không gian và DOT ở cuối để sao chép vào vị trí hiện tại). Hơn chỉ cần thêm chứng chỉ (y), viết mật khẩu và đó là tất cả.
Đây là giải pháp để sao chép các tệp từ Linux sang Windows bằng SCP mà không cần mật khẩu bằng ssh:
Cài đặt sshpass trong máy Linux để bỏ qua mật khẩu Nhắc
Kịch bản
sshpass -p 'xxxxxxx' scp /home/user1/*.* [email protected]:/d/test/
Chi tiết:
sshpass -p 'password' scp /source_path/*.* [email protected]_ip:/destination_drive/subfolder/
Tôi đã phải sử dụng pscp như trên bài đăng của Hesham sau khi tôi tải xuống và cài đặt PuTTY. Tôi đã làm điều đó với Windows từ Linux trên Windows vì vậy tôi đã nhập như sau:
c:\ssl> tên người dùng pscp @ linuxserver: keenan/ssl/*.
Điều này sẽ sao chép mọi thứ trong thư mục keenan/ssl vào thư mục cục bộ (.) Bạn đã thực hiện lệnh này từ (c:\ssl). Keenan/ssl sẽ chỉ định thư mục chính của người dùng tên người dùng, ví dụ: đường dẫn đầy đủ sẽ là/home/username/keenan/ssl. Bạn có thể chỉ định một thư mục khác bằng cách sử dụng dấu gạch chéo (/), chẳng hạn như
c:\ssl> tên người dùng pscp @ linuxserver:/home/username/keenan/ssl/*.
Vì vậy, bạn có thể chỉ định bất kỳ thư mục nào trong thư mục gốc của Linux bằng cách sử dụng: /
Keenan
Như @Hesham Eraqi đã đề xuất, nó hoạt động với tôi theo cách này (chuyển từ Ubuntu sang Windows (Tôi đã cố gắng thêm một nhận xét trong câu trả lời đó nhưng vì danh tiếng, tôi không thể)):
pscp -v -r -P 53670 [email protected]:/data/genetic_map/sample/P2_283/* \\Desktop-mojbd3n\d\cc_01-1940_data\
ở đâu:
-v
: hiển thị thông báo dài dòng.
[.__.] -r
: sao chép thư mục theo cách đệ quy.
[.__.] -P
: kết nối với cổng được chỉ định.
[.__.] 53670
: số cổng để kết nối máy chủ Ubuntu.
[.__.] \\Desktop-mojbd3n\d\genetic_map_data\
: Tôi cần chuyển sang ổ cứng gắn ngoài, do đó tôi phải cấp quyền chia sẻ cho thiết bị này.
Mở cửa sổ bash. Tốt nhất là git bash. viết
tên người dùng scp @ remote_ip:/library_of_file/tên tệp 'windows_location_you_want_to_store_the_file'
Thí dụ:
Giả sử tên người dùng của bạn là viên ngọc
iP của bạn là 176,35,96.32
vị trí tệp từ xa của bạn là / usr/local/forme
tên tệp của bạn là log.Zip
và bạn muốn lưu trữ trong thư mục forme ổ đĩa PC của Windows thì lệnh sẽ là
scp [email protected]: /usr/local/forme/logs.Zip 'D:/forme'
** Giữ thư mục tập tin cục bộ bên trong trích dẫn duy nhất.
Để gửi tệp từ windows sang hệ thống linux
người dùng scp path-to-file @ ipaddress:/path-to-Destination
Thí dụ:
scp C:/Users/adarsh/Desktop/Document.txt [email protected]:/tmp
xin lưu ý rằng cần phải sử dụng dấu gạch chéo (/) thay cho dấu gạch chéo ngược (\) trong tệp trong đường dẫn windows nếu không nó sẽ hiển thị lỗi
C: UsersadarshDesktopDocument.txt: Không có tệp hoặc thư mục như vậy
. Sau khi thực hiện lệnh scp, bạn sẽ yêu cầu mật khẩu của người dùng root trong máy linux. Có bạn ĐI ...
Để gửi tệp từ linux đến hệ thống windows
scp -r user @ ipaddress:/path-to-file path-to-Destination
Thí dụ:
scp -r [email protected]:/tmp/Document.txt C:/Users/adarsh/Desktop/
và cung cấp mật khẩu linux của bạn. chỉ có một bạn phải thêm vào lệnh này là - r. Cảm ơn.