Cách SCP từ máy chủ linux sang máy khách Windows


21

Tôi đang SSH vào máy Linux bằng PuTTY và cố gắng sao chép tệp xuống một nơi nào đó (bất cứ nơi nào) vào máy cục bộ của tôi. Tôi tìm SCP là ứng cử viên tốt nhất cho công việc nhưng không thực sự quan tâm, miễn là các tác phẩm giải pháp!

Tôi cdvào thư mục chứa tệp tôi muốn ( app.war) và gõ như sau:

scp app.war ./

Tôi đã thử cả hai đều vô ích:

scp app.war ./C:/Users/myUser/
scp app.war ./Users/myUser/

Nó khiến tôi nghĩ rằng có lẽ SCP là một công cụ máy khách / máy chủ và yêu cầu một máy khách trên máy Windows của tôi, không có ở đó.

Tôi chỉ đang sử dụng cú pháp sai? Hay tôi đang rời khỏi căn cứ? Nếu vậy, tôi có những lựa chọn nào? Cảm ơn trước!


Câu trả lời thực sự cho câu hỏi này là ở đây: stackoverflow.com/a/23412501/1579667 . Cú phápscp some_file user@host:/c/temp
Benj

Đồng thời xem máy khách và máy chủ Bitvise SSH. Đây là một trong những phần mềm SSH lâu đời nhất dành cho Windows. Khách hàng là một tải về miễn phí và sử dụng miễn phí.
3:24

Câu trả lời:


25

để bạn sao chép các tệp trở lại Windows, bạn cần có daemon / dịch vụ SSH để chạy trên Windows, thay vào đó, sử dụng công cụ này dễ dàng hơn nhiều, nó có khả năng nhập phiên từ Putty, ứng dụng khách rất đơn giản yêu nó!

WinSCP :: Ứng dụng khách SFTP và FTP miễn phí cho Windows


Chỉ là một công cụ tuyệt vời :). Yêu nó \ m /
Chaitanya

Nó không thực sự trả lời câu hỏi ban đầu, vốn đang sống trong dòng lệnh. Xem bình luận của tôi dưới câu hỏi ban đầu.
Benj

@Benj OP yêu cầu giải pháp, WinSCPlà một giải pháp tốt cho nhiệm vụ đó.
alexus

11

Bạn nói đúng. SSHD là dịch vụ máy chủ SSH chạy trên máy chủ. Nó chấp nhận các kết nối từ các máy khách SSH (như PuTTy), máy khách SCP và máy khách SFTP.

Bạn có thể tải xuống pscptừ cùng một trang web nơi PuTTY được lưu trữ.

Từ máy windows, bạn sẽ thực thi một lệnh tương tự như

pscp.exe someuser@somehost.com:/path/to/app.war c:\tmp


2

Để SCP một tệp vào máy Windows, bạn cần máy chủ SSH / SCP trên Windows.

Theo mặc định, không có hỗ trợ SSH / SCP trong Windows. Bạn có thể cài đặt bản dựng OpenSSH của Microsoft cho Windows ( Bản phát hành và Tải xuống ). Nó có sẵn dưới dạng tính năng tùy chọn trên Windows 10 phiên bản 1803 trở lên. Nó cũng có thể được cài đặt thủ công trên các phiên bản Windows cũ hơn.

Tôi đã chuẩn bị một hướng dẫn để thiết lập máy chủ SSH / SFTP trên Windows bằng cách sử dụng bản dựng OpenSSH này của Microsoft .

Xem thêm IIS SFTP có được hỗ trợ bởi Windows không?


Mặc dù bạn SSH vào máy chủ Linux từ máy Windows, nhưng thực tế bạn có thể tải tệp từ máy chủ Linux xuống máy chủ Windows, thay vì cố tải tệp từ máy chủ Linux lên máy chủ Windows.

Trong bạn có quyền truy cập SSH từ Windows sang Linux, bạn cũng có quyền truy cập SCP (hoặc thậm chí tốt hơn là truy cập SFTP).

Sử dụng bất kỳ máy khách SCP / SFTP có sẵn.

Bạn có thể sử dụng máy khách WinSCP SFTP / SCP , có cả giao diện GUIdòng lệnh .

Một cách khác là bộ công cụ PuTTY, bao gồm pscpcông cụ dòng lệnh với cú pháp tương tự scplệnh OpenSSH . Ngoài ra các phiên bản mới nhất của Windows 10 đi kèm với OpenSSH tích scphợp và nó cũng có thể được cài đặt trên các phiên bản cũ hơn.

(Tôi là tác giả của WinSCP)


Có phiên bản pscp cho OSX / Linux không?
mã hóaknob

@codingknob Chắc chắn, có gói "putty" cho nhiều bản phân phối. Mặc dù pscpchức năng này giống hệt với OpenSSH scp, vốn đã có sẵn trên tất cả / hầu hết các bản phân phối.
Martin Prikryl

1

Windows 10 hiện đã có OpenSSH tích hợp. Https://docs.microsoft.com/en-us/windows-server/adftime/openssh/openssh_install_firstuse

Nhận lời nhắc lệnh quản trị viên

Open PowerShell as an Administrator.

Kiểm tra các phiên bản có sẵn

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Cài đặt máy khách

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Cài đặt máy chủ

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Khởi động máy chủ và kích hoạt khi khởi động

Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'

Tìm địa chỉ IP Windows của bạn

ipconfig

Trên máy từ xa (Linux), tìm địa chỉ IP của bạn.

ifconfig

Tạo khóa SSH công khai

ssh-keygen.exe

Sao chép khóa công khai từ máy cục bộ (Windows) sang máy từ xa (Linux) để bạn không phải nhập mật khẩu mọi lúc.

Lưu ý rằng ssh-copy-id hiện không có sẵn trên Windows.

cat C:\Users\YOU/.ssh/id_rsa.pub | ssh USER@REMOTE_IP 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

Thực hiện tương tự trên máy Linux của bạn (Lưu ý, ssh-copy-id không hoạt động)

ssh-keygen # if needed
cat ~/.ssh/id_rsa.pub | ssh USER@WINDOWS_IP 'mkdir -p ~/.ssh && type con >> C:/Users/YOU/.ssh/authorized_keys'
  • Phương pháp trên không hiệu quả với tôi, vì vậy tôi đã kết thúc thủ công SCPing khóa công khai và dán nó vào tệp C: /Users/YOU/.ssh/authorized_keys.

  • Điều đó vẫn không hoạt động, vì vậy tôi đã phải sửa đổi tệp sshd_config.

    • Mở Notepad với tư cách quản trị viên

    • Mở% chương trình% \ ssh \ sshd_config

    • Thêm các dòng sau:

        Match User YOU
             AuthorizedKeysFile C:/Users/YOU/.ssh/authorized_keys
  • Khởi động lại

Tạo mật khẩu trên Windows nếu bạn chưa có mật khẩu

System Settings...Sign-in options

- Lưu ý, bạn vẫn có thể vô hiệu hóa màn hình đăng nhập Windows bằng cách a) Đặt tùy chọn 'Yêu cầu đăng nhập' thành không bao giờ và b) Sử dụng lệnh 'netplwiz' và bỏ chọn hộp kiểm 'Người dùng phải nhập mật khẩu ...'.

Bây giờ bạn sẽ có thể SSH hoặc SCP từ máy Linux của bạn

scp FILE WINDOWS_IP:C:/Users/YOU/Desktop

0

Bạn có thể làm điều này bằng cách sử dụng hệ thống con Linux Ubuntu cho Windows (bạn cần kích hoạt tính năng này như một tính năng của Windows). Sau đó, bạn có thể sử dụng máy khách đầu cuối Linux chạy trên Windows bằng cách lấy nó từ Microsoft Store (ví dụ: Ubuntu 16.04 LTS). Sau đó, nếu bạn có bảo mật ssh được thiết lập từ xa vào máy Linux của mình, bạn có thể scptừ thiết bị đầu cuối Windows Ubuntu cục bộ của mình (khi đăng nhập với tên người dùng mà bạn đã đặt cho phiên bản Linux của mình) như sau:

scp -i ~/.ssh/my_rsa username@11.11.11.11:~/myfile ~/ ... nhập cụm mật khẩu RSA

Tệp từ xa sẽ được sao chép vào hệ thống tệp Ubuntu cục bộ của bạn được sử dụng bởi Windows, vd

C:\Users\my.username\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\my_linux_username


1
Trong các phiên bản mới nhất của Windows 10, (Win32-OpenSSH) scp(.exe)được tích hợp sẵn. Bạn không cần phải cài đặt bất cứ thứ gì.
Martin Prikryl

-1

Bước 1: Tải xuống pscp
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
(Dựa trên máy của bạn tải xuống phiên bản tương ứng)

Bước 2: Làm quen với các lệnh pscp
Để làm như vậy, hãy mở dấu nhắc lệnh trong máy windows của bạn, đi đến thư mục nơi bạn đã tải xuống pscp.exe và nhập "pscp"

Bước 3: Chuyển tệp từ máy Linux của bạn sang máy Windows
mở dấu nhắc lệnh của bạn và chạy bên dưới lệnh cung cấp chi tiết của bạn:

pscp usernameofyourlinuxmachine@10.40.000.000:/path/of/your/File/nameofyourfile.txt ./

và lệnh này sẽ chuyển tệp từ máy Linux của bạn sang thư mục hiện tại của máy windows của bạn

Bước 4: Chuyển tệp từ máy Windows của bạn sang máy Linux
mở dấu nhắc lệnh của bạn và chạy bên dưới lệnh cung cấp chi tiết của bạn:

pscp nameofyourfile.txt usernameofyourlinuxmachine@10.40.000.000:/path/where/youwantyourfile

Tôi hy vọng điều này là rõ ràng và làm việc cho tất cả các bạn!


2
Các câu trả lời chỉ liên kết khá không có ích vì chúng có thể ngừng hoạt động trong tương lai - cố gắng mở rộng câu trả lời của bạn bằng cách thực sự giải thích các bước trong video.
djsmiley2k - CoW
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.