Tôi đã đăng nhập vào một máy chủ từ xa bằng PuTTY.
Lệnh chuyển tệp từ máy cục bộ của tôi sang máy tôi đã đăng nhập trên PuTTY là gì?
Câu trả lời:
Đây có lẽ không phải là câu trả lời trực tiếp cho những gì bạn đang hỏi, nhưng khi tôi cần chuyển tệp qua phiên SSH, tôi sử dụng WinSCP , đây là một chương trình truyền tệp tuyệt vời qua SCP hoặc SFTP. Tất nhiên điều này giả sử bạn đang sử dụng Windows.
sudo
trong WinSCP, hãy xem Câu hỏi thường gặp Làm cách nào để thay đổi người dùng sau khi đăng nhập (ví dụ: su root)?
c:> pscp source_file_name userid @ server_name: / path / destination_file_name.
c:> pscp november2012 wrhse@warehouse.cit.cornell.edu: / mydata / november2012.
Thưởng thức
sudo su - user
PuTTY thường đi kèm với một ứng dụng khách gọi là psftp mà bạn có thể tận dụng cho mục đích này. Tôi không tin rằng bạn có thể làm điều đó thông qua ứng dụng khách PuTTY tiêu chuẩn (mặc dù tôi có thể được chứng minh là sai về điều đó).
PuTTY chỉ cấp cho bạn quyền truy cập để thao tác với máy từ xa. Nó không cung cấp liên kết trực tiếp giữa hai hệ thống tệp hơn là ngồi xuống máy từ xa.
Không có cách nào để bắt đầu chuyển tệp trở lại / từ Windows cục bộ từ phiên SSH được mở trong cửa sổ PuTTY.
Mặc dù PuTTY hỗ trợ chia sẻ kết nối.
Trong khi bạn vẫn cần chạy ứng dụng truyền tệp tương thích ( pscp
hoặc psftp
), không cần đăng nhập mới, nó sẽ tự động (nếu được bật) sử dụng phiên PuTTY hiện có.
Để bật tính năng chia sẻ, hãy xem:
Chia sẻ kết nối SSH giữa các công cụ PuTTY .
Một cách khác là sử dụng WinSCP, một ứng dụng khách GUI SFTP / SCP. Trong khi duyệt trang web từ xa, bạn có thể mở thiết bị đầu cuối SSH đến cùng một trang web bất cứ lúc nào bằng cách sử dụng nút Mở trong PuTTY .
Xem Phần mở đầu trong PuTTY .
Với một thiết lập bổ sung, bạn thậm chí có thể làm cho PuTTY tự động điều hướng đến cùng một thư mục mà bạn đang duyệt với WinSCP.
Xem Mở PuTTY trong Cùng Thư mục .
(Tôi là tác giả của WinSCP)
Bạn cũng có thể tải xuống psftp.exe từ:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Khi bạn chạy nó, bạn gõ:
open "server name"
Sau đó:
put "file name"
(Nhập trợ giúp để có danh sách đầy đủ các lệnh.)
Bạn cũng có thể nhập get <file name>
để tải tệp từ máy từ xa sang máy cục bộ.
Nếu nó chỉ là một tệp, bạn có thể sử dụng quy trình sau (trong putty):
Chỉnh sửa quyền đối với tệp bằng lệnh tiếp theo: chmod u + x filename.extension
Vì bạn đã hỏi về đến / từ, đây là một mẹo hiệu quả cho phần 'từ'. Mở màn hình 'Thay đổi cài đặt ...', Thiết bị đầu cuối và trong 'Máy in để gửi đầu ra máy in ANSI tới:' chọn 'Chỉ chung / Chỉ văn bản'
Bây giờ trên hệ thống từ xa, hãy chạy điều này trên một dòng:
tput mc5; cat whatever.txt; tput mc4
Putty sẽ thông báo cho bạn rằng tệp đã được lưu. Điều này đang làm là đặt thiết bị đầu cuối vào chế độ máy in (tput mc5), in tệp ra màn hình (cat), sau đó tắt chế độ máy in (tput mc4). Nếu bạn không đặt tất cả các lệnh trên một dòng, màn hình sẽ xuất hiện đóng băng vì Putty đang lưu tất cả đầu ra của thiết bị đầu cuối vào một tệp ở chế độ nền.
Nếu bạn đang sử dụng một hệ thống hạn chế hơn không có lệnh tput (ví dụ: qnap), bạn có thể thử printf "\ x1b [5i" thay vì tput mc5 và printf "\ x1b [4i" thay vì tput mc4 .
Lệnh ở giữa chỉ là bất cứ thứ gì được in ra màn hình. Vì vậy, hãy sử dụng tail -n 10000 blah.log để tải xuống 10k dòng cuối cùng của tệp nhật ký hoặc sử dụng bộ mã hóa base64 để ánh xạ tệp nhị phân thành tệp mà bạn có thể in (và sau đó giải mã trên hệ thống cục bộ của bạn):
printf "\x1b[5i"; openssl enc -base64 -in something.zip; printf "\x1b[4i"
Nếu bạn phải xác thực khóa cá nhân; tại Command Prompt (cmd), chạy
Đầu tiên;
set PATH=C:\PuttySetupLocation
Thứ hai;
pscp -i C:/MyPrivateKeyFile.ppk C:/MySourceFile.jar ubuntu@55.69.41.155:/home/ubuntu
Ngoài ra, nếu bạn cần các tùy chọn bổ sung, hãy xem liên kết sau. https://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter5.html
set PATH=C:\PuttySetupLocation
gì? Tại sao bạn không làm C:\PuttySetupLocation\pscp
trực tiếp? - Dù muốn sửa đổi PATH
thì bạn cũng nên thêm đường dẫn mới chứ không nên đặt lại hoàn toàn.
Nhìn đây:
Nó khuyên bạn nên sử dụng pscp.exe
từ PuTTY, có thể tìm thấy ở đây: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Không thể chuyển trực tiếp như FTP vì tất cả các lệnh trong phiên của bạn đều được gửi đến máy chủ.
Truyền tệp bằng Putty (pscp / plink.exe)
Cài đặt putty mặc định cung cấp nhiều cách để truyền tệp. Nhiều khả năng putty
là trên đường dẫn mặc định của bạn, vì vậy bạn có thể gọi trực tiếp
putty
từ dấu nhắc lệnh. Nếu không, bạn có thể phải thay đổi các biến môi trường của mình. Xem hướng dẫn tại đây:
https://it.cornell.edu/managed-servers/transfer-files-using-putt
Các bước
Mở dấu nhắc lệnh bằng cách gõ cmd
Để chuyển các thư mục từ máy tính Windows của bạn sang một máy tính Windows khác
(lưu ý -r
cờ, biểu thị rằng các tệp sẽ được chuyển một cách đệ quy, không cần phải nén chúng lại):
pscp -r -i C:/Users/username/.ssh/id_rsa.ppk "C:/Program Files (x86)/Terminal PC" ipython_user@10.15.48.54:/"C:/Program Files (x86)/"
Để chuyển tệp từ máy tính Windows của bạn sang máy tính Windows khác, hãy
sử dụng:
pscp -i C:/Users/username/.ssh/id_rsa.ppk "C:/Program Files (x86)/Terminal PC" ipython_user@10.15.48.54:/"C:/Program Files (x86)/"
Đôi khi, bạn chỉ có thể đã plink
cài đặt. plink
có thể được sử dụng để chuyển tệp, nhưng nó bị hạn chế tốt nhất đối với các tệp văn bản đơn giản. Nó có thể có hành vi không xác định với các tệp nhị phân ( /superuser/1289455/create-text-file-on-remote-machine-using-plink-putty-with-contents-of-windows-lo ):
plink -i C:/Users/username/.ssh/id_rsa.ppk user@host <localfile "cat >hostfile"
Để chuyển tệp từ máy chủ linux sang máy tính Windows sang máy tính Linux, hãy sử dụng
pscp -r -i C:/Users/username/.ssh/id_rsa.ppk "C:/Program Files (x86)/Terminal PC" username@10.15.48.16:/home/username
Để tất cả những thứ này hoạt động, bạn cần có khóa công khai / riêng tư thích hợp. Để tạo điều đó cho putty, hãy xem: https://superuser.com/a/1285789/658319
Theo cách đó, trên windows pscp cho phép tải lên trực tiếp (mà không cần bất kỳ yêu cầu nào về việc chấp nhận khóa):
pscp.exe -scp -pw 'my_pw' -v -i my.ppk -l root -batch -sshlog logfile19.txt -hostkey ba:2e:4d:12:68:82:19:a1:d2:22:bc:12:c2:1a:44:a7 hallo4.txt root@10.10.10.10:/srv/www/htdocs/xml_parser/hallo4.txt