Tôi có thể chuyển tập tin bằng SSH không?


32

Tôi đang sử dụng PuTTY trên Windows 7 để SSH đến phòng thí nghiệm máy tính của trường. Tôi có thể chuyển các tập tin từ máy Windows của mình sang người dùng của mình trên các máy học bằng SSH không?


Tôi đang bỏ phiếu để đóng câu hỏi này ngoài chủ đề vì đó là về Windows, không phải Unix.
dr01

@ dr01 đúng nhưng nó có rất nhiều sự ủng hộ vì vậy nó có thể đáng để lại cho hậu thế và tiếp tục.
roaima

Câu trả lời:


41

Sử dụng công cụ PSCP từ trang tải xuống putty:

http://www.chiark.greenend.org.uk/~sgtatham/putty/doad.html

PSCP là phiên bản putty của scp là lệnh cp (sao chép) trên lệnh ssh.

PSCP cần được cài đặt trên máy tính windows của bạn (vừa mới tải xuống, thực sự không có quá trình cài đặt. Trong phần Tệp đóng gói, pscp.exe đã được bao gồm). Không có gì cần phải được cài đặt trên máy chủ của trường. Cả PSCP và scp đều sử dụng ssh để kết nối.

Để trả lời câu hỏi sử dụng từ các ý kiến:

Để tải lên từ máy tính của bạn đến một máy chủ từ xa:

c:\pscp c:\some\path\to\a\file.txt user@remote:\home\user\some\path

Điều này sẽ tải tập tin file.txt vào thư mục được chỉ định trên máy chủ. Nếu phần cuối cùng của đường dẫn đích KHÔNG phải là một thư mục, nó sẽ là tên tệp mới. Bạn cũng có thể làm điều này để tải lên tệp có tên khác:

c:\pscp c:\some\path\to\a\file.txt user@remote:\home\user\some\path\newname.txt

Để tải tệp từ máy chủ từ xa xuống máy tính của bạn:

c:\pscp user@remote:\home\user\some\file.txt c:\some\path\to\a\

hoặc là

c:\pscp user@remote:\home\user\some\file.txt c:\some\path\to\a\newfile.txt

hoặc là

c:\pscp user@remote:\home\user\some\file.txt .

Với một dấu chấm đơn độc ở cuối đó. Điều này sẽ tải tập tin được chỉ định vào thư mục hiện tại.

Vì nhận xét quá xa, tôi cũng nên chỉ ra ở đây rằng WinSCP tồn tại cung cấp GUI cho tất cả điều này, nếu đó là điều đáng quan tâm: http://winscp.net/eng/doad.php


Tôi không thể cài đặt bất cứ thứ gì trên máy tính của trường đại học. Tôi có cần phải?
Alex Mohr

Máy tính windows 7 là của bạn hay trường học của bạn? Tôi đọc các câu hỏi để gợi ý rằng bạn đang sử dụng putty trên của bạn máy tính để kết nối với các trường. Nếu đó là trường hợp, thì bạn không cần phải cài đặt bất cứ thứ gì trên máy tính của trường, nhưng bạn sẽ cần phải cài đặt trên máy tính của bạn.
SuperMagic

Tôi đang sử dụng máy windows 7 của mình. cảm ơn! Tôi đã tìm thấy lệnh wget và tôi đã sử dụng dropbox để chuyển tệp, nhưng tôi sẽ ghi nhớ điều này chắc chắn
Alex Mohr

Một điều nữa: scp hoạt động cả hai cách. Bạn có thể tải lên cũng như tải về với nó.
SuperMagic

Tôi có một chút rắc rối với cú pháp của lệnh. Có phải nó pscp source "path_to_local_file" user@host:path_to_new_locationkhông? Tôi đã làm cho nó hoạt động với việc để trống đường dẫn trên máy từ xa, nó chỉ cần đặt nó vào thư mục gốc của tôi.
Alex Mohr

6

Bạn có thể phải sử dụng dấu gạch chéo (/) để nói chuyện với máy chủ LINUX / UNIX

c:\pscp c:\some\path\to\a\file.txt user@remote:/home/user/some/path

3

Bạn có thể đánh bóng nhiều tập tin với tar:

tar -cz . | ssh me@school -- 'tar -C/path/to/target/dir -xz'

... sẽ đệ quy nén và truyền phát tất cả các tệp trong thư mục hiện tại trên máy cục bộ vào đường dẫn đích đồng thời giải nén và mở rộng luồng trên máy từ xa.

Bạn có thể làm những điều tương tự cho bất cứ điều gì viết lên thiết bị xuất chuẩn. catlà một lựa chọn rõ ràng:

cat ./localfile | ssh user@remote 'cat >./remotefile'

1
Tuyệt quá. Cách thực hiện trong Windows
Joe

@Joe - cách tương tự? Có lẽ <./localfile putty user@remote 'cat >./remotefile'- tôi quên tất cả các công tắc putty. Nhưng nó khá gần
mikeerv 24/07/2015

1
Phiên bản Windows / PuTTY sẽ là: gõ localfile | người dùng plink @ remote "cat> remotefile"
Adam Haun

2

Bạn có thể sử dụng WinSCP cho việc này. Nó dễ dàng hơn nhiều so với các công cụ khác được liệt kê, nó cung cấp giao diện người dùng kéo và thả đơn giản.


Không rõ ràng những gì liên quan đến câu hỏi này. Trừ khi đó chỉ là tên của một chương trình khách hàng, và phần còn lại là rác.
Tom Hunt

Có thể câu hỏi đã thay đổi theo thời gian nhưng đây là câu trả lời tôi đang tìm kiếm: đây là một chương trình với một gui có thể duyệt và chuyển các tập tin qua ssh. Nó thậm chí nhập các cài đặt từ Putty.
Imho

2

bạn có thể sử dụng lệnh Windows PowerShell:

scp -P <non-default target ssh port> "<source file>" <username>@<hostname/address>:<destination path>

-P cờ có thể được bỏ qua nếu ssh được mở trên cổng mặc định (22)

ví dụ:

  • sao chép tệp "ps.key" từ máy chủ Windows qua ssh
  • địa chỉ đích là 192.168.88.242, ssh hoạt động trên cổng 1688
  • tên người dùng là "nick"

chỉ huy:

scp -P 1688 "D:\MEGA\ps.key" nick@192.168.88.242:/home/nick/ps.key

Sau này, bạn nên xác nhận dấu vân tay của khóa mục tiêu (nếu bạn chưa kết nối với máy chủ này qua PowerShell trước đó) và nhập mật khẩu của người dùng đích.

đã thử nghiệm trên win10, không yêu cầu bất kỳ cài đặt bổ sung nào


Điều đó không giống như một lệnh Powershell. Bạn có chắc chắn nó không phải scptừ bộ PuTTY?
roaima

@roaima OpenSSH đã có sẵn dưới dạng một phần tùy chọn nhưng tích hợp sẵn của Windows 10 kể từ bản cập nhật của Fall Creator (Cuối năm 2017) và đã được cài đặt theo mặc định kể từ bản cập nhật tháng 4 năm 2018. Các scplệnh được bao gồm.
Bob Sammer

1
@BobSammers ồ vậy. (Của tôi bị che bởi cài đặt Cygwin.) Tuy nhiên, đó không phải là Powershell, theo bất kỳ ý nghĩa thống nhất nào. Dòng lệnh chắc chắn, nhưng không phải Powershell.
roaima

Trên thực tế đây là giải pháp đơn giản nhất, tôi vừa thử với PShell trên Windows của mình và nó mở SSH trên RHEL, yêu cầu Mật khẩu, sao chép tệp và đóng. Và nó hoạt động!
Raffaeu

0

Sử dụng công cụ Beyond So sánh nếu không phải là một guru dòng lệnh. Beyond So sánh là một công cụ so sánh thư mục và có giao diện người dùng đẹp và cho phép bạn sử dụng tệp khóa riêng SFTP và SSH cho các môi trường khác nhau mà bạn đang cố gắng đăng nhập. Đây là liên kết đến công cụ [ https://www.scootersoftware.com/[[1]


0

Vì bạn đã quen thuộc với putty. Tôi đề nghị bạn hãy xem https://mobaxterm.mobatek.net/ . MobaXterm có mọi thứ bạn cần để làm việc từ xa trên Linux từ máy tính windows, ssh, sftp, scp, Xwindows đều được bao gồm. Theo ý kiến ​​của tôi thì nó tốt hơn nhiều so với putty.


Có phải nó cũng miễn phí (miễn phí) cho mục đích không sử dụng cá nhân; ví dụ: SSH đến phòng thí nghiệm máy tính của trường (như trong câu hỏi)?
Pierre.Vriens

Vâng. MobaXterm miễn phí ngay cả cho mục đích thương mại trừ khi bạn cần lưu hơn 10 phiên. Tôi là một nhà phát triển phần mềm và phiên bản miễn phí hoạt động hoàn hảo cho công việc của tôi. Đối với công việc ở trường, chỉ cần đi trước.
Cen R.
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.