ฉันสามารถถ่ายโอนไฟล์โดยใช้ SSH ได้ไหม?


32

ฉันใช้PuTTYบน Windows 7 ถึง SSH ไปที่ห้องปฏิบัติการคอมพิวเตอร์ของโรงเรียน ฉันสามารถถ่ายโอนไฟล์จากเครื่อง Windows ของฉันไปยังผู้ใช้ของฉันในเครื่องโรงเรียนโดยใช้ SSH ได้หรือไม่


ฉันลงคะแนนให้ปิดคำถามนี้เป็นหัวข้อนอกเรื่องเกี่ยวกับ Windows ไม่ใช่ Unix
dr01

@ dr01 จริง แต่มี upvotes จำนวนมากดังนั้นมันน่าจะคุ้มค่าสำหรับลูกหลานและก้าวต่อไป
roaima

คำตอบ:


41

ใช้เครื่องมือ PSCP จากหน้าดาวน์โหลด putty:

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

PSCP เป็นรุ่น putty ของ scp ซึ่งเป็น cp (copy) เหนือคำสั่ง ssh

PSCP จำเป็นต้องติดตั้งบนคอมพิวเตอร์ที่ใช้ windows ของคุณ (เพิ่งดาวน์โหลดจริงๆไม่มีกระบวนการติดตั้งในส่วนไฟล์ที่บรรจุ pscp.exe จะรวมอยู่ด้วย) ไม่จำเป็นต้องติดตั้งบนเซิร์ฟเวอร์ของโรงเรียน PSCP และ SCP ทั้งสองใช้ ssh เพื่อเชื่อมต่อ

เพื่อตอบคำถามการใช้งานจากความคิดเห็น:

ในการอัพโหลดจากคอมพิวเตอร์ของคุณไปยังเซิร์ฟเวอร์ระยะไกล:

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

สิ่งนี้จะอัปโหลดไฟล์ file.txt ไปยังไดเรกทอรีที่ระบุบนเซิร์ฟเวอร์ หากส่วนสุดท้ายของเส้นทางปลายทางไม่ใช่ไดเรกทอรีมันจะเป็นชื่อไฟล์ใหม่ คุณสามารถทำได้เพื่ออัปโหลดไฟล์ด้วยชื่ออื่น:

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

วิธีดาวน์โหลดไฟล์จากเซิร์ฟเวอร์ระยะไกลไปยังคอมพิวเตอร์ของคุณ:

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

หรือ

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

หรือ

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

ด้วยจุดที่โดดเดี่ยวที่สุด นี่จะดาวน์โหลดไฟล์ที่ระบุไปยังไดเรกทอรีปัจจุบัน

เนื่องจากความคิดเห็นอยู่ไกลเกินไปฉันควรชี้ให้เห็นที่นี่ว่า WinSCP มีการให้ GUI สำหรับสิ่งนี้ทั้งหมดหากเป็นเรื่องที่น่าสนใจ: http://winscp.net/eng/download.php


แน่นอนว่าฉันไม่สามารถติดตั้งอะไรในคอมพิวเตอร์ของมหาวิทยาลัย ฉันจำเป็นต้อง
Alex Mohr

windows 7 เป็นเครื่องจักรของคุณหรือโรงเรียนของคุณหรือไม่? ผมอ่านคำถามที่ชี้ให้เห็นว่าคุณกำลังใช้ฉาบบนของคุณคอมพิวเตอร์เพื่อเชื่อมต่อกับโรงเรียน หากเป็นกรณีนี้คุณไม่จำเป็นต้องติดตั้งอะไรบนคอมพิวเตอร์ของโรงเรียน แต่คุณจะต้องติดตั้งเอง
SuperMagic

ฉันใช้เครื่อง windows 7 ขอบคุณ! ฉันพบคำสั่ง wget และฉันใช้ดรอปบ็อกซ์เพื่อถ่ายโอนไฟล์ แต่ฉันจะจำเรื่องนี้ไว้อย่างแน่นอน
Alex Mohr

อีกสิ่งหนึ่ง: SCP ทำงานทั้งสองวิธี คุณสามารถอัปโหลดและดาวน์โหลดได้
SuperMagic

ฉันมีปัญหาเล็กน้อยกับไวยากรณ์ของคำสั่ง มันคือpscp source "path_to_local_file" user@host:path_to_new_location? ฉันได้มันไปใช้งานโดยปล่อยให้พา ธ บนเครื่องรีโมตว่างเปล่ามันแค่วางไว้ในไดเรกทอรีราก
Alex Mohr

6

คุณอาจต้องใช้เครื่องหมายทับ (/) เพื่อพูดคุยกับเซิร์ฟเวอร์ LINUX / UNIX

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

3

คุณสามารถเพิ่มไฟล์เป็นจำนวนมากด้วยtar:

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

... ซึ่งจะบีบอัดและสตรีมไฟล์ทั้งหมดซ้ำในไดเรกทอรีปัจจุบันบนเครื่องท้องถิ่นไปยังพา ธ เป้าหมายขณะที่ไม่บีบอัดและขยายสตรีมบนเครื่องรีโมต

คุณสามารถทำสิ่งที่คล้ายกันสำหรับสิ่งที่เขียนไปยัง stdout catเป็นตัวเลือกที่ชัดเจน:

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

1
ยิ่งใหญ่ วิธีทำใน Windows
Joe

@ Joe - วิธีเดียวกัน อาจจะ<./localfile putty user@remote 'cat >./remotefile'- ฉันลืมสวิตช์ฉาบทั้งหมด แต่มันใกล้เคียงกันมาก
mikeserv

1
รุ่น Windows / PuTTY จะเป็น: type localfile | ผู้ใช้ plink @ remote "cat> remotefile"
Adam Haun

2

คุณสามารถใช้WinSCPได้ มันง่ายกว่าเครื่องมืออื่น ๆ ในรายการมันมี UI แบบลากและวางที่เรียบง่าย


ไม่ชัดเจนว่าความสัมพันธ์นี้มีต่อคำถามที่ถามหรือไม่ นอกจากจะเป็นเพียงชื่อของโปรแกรมไคลเอนต์และส่วนที่เหลือเป็นขยะ
Tom Hunt

อาจมีคำถามเปลี่ยนไปตามกาลเวลา แต่นี่คือคำตอบที่ฉันกำลังมองหา: นี่คือโปรแกรมที่มี gui ที่สามารถเรียกดูและถ่ายโอนไฟล์ผ่าน ssh มันยังนำเข้าการตั้งค่าจาก Putty มีประโยชน์มาก imho, จำชื่อไม่ได้, ขอบคุณ
Emile Vrijdags

2

คุณสามารถใช้คำสั่ง Windows PowerShell:

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

-P สามารถละเว้นการตั้งค่าสถานะถ้า ssh เปิดบนพอร์ตเริ่มต้น (22)

เช่น:

  • คัดลอกไฟล์ "ps.key" จากโฮสต์ Windows ผ่าน ssh
  • ที่อยู่เป้าหมายคือ 192.168.88.242, ssh ทำงานบนพอร์ต 1688
  • ชื่อผู้ใช้เป้าหมายคือ "nick"

คำสั่ง:

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

หลังจากนี้คุณควรยืนยันลายนิ้วมือคีย์เป้าหมาย (หากคุณไม่ได้เชื่อมต่อกับโฮสต์นี้ผ่าน PowerShell มาก่อน) และพิมพ์รหัสผ่านของผู้ใช้เป้าหมาย

ทดสอบใน win10 ไม่ต้องการการติดตั้งเพิ่มเติมใด ๆ


นั่นดูไม่เหมือนคำสั่ง Powershell คุณแน่ใจหรือว่าไม่ได้scpมาจากชุด PuTTY?
roaima

@roaima OpenSSH มีให้ใช้งานเป็นทางเลือก แต่เป็นส่วนหนึ่งของ Windows 10 ตั้งแต่การอัพเดทของ Fall Creator (ปลายปี 2017) และได้รับการติดตั้งเป็นค่าเริ่มต้นตั้งแต่การอัปเดตเมษายน 2018 scpคำสั่งรวม
Bob Sammers

1
@ BobSammers โอ้มันเป็นอย่างนั้น (การติดตั้งของ Cygwin ถูกหลอกลวงโดยผม) มันไม่ได้เป็น Powershell แต่ในแง่ใดก็ตาม Command-line อย่างแน่นอน แต่ไม่ใช่ Powershell
roaima

อันที่จริงนี่เป็นทางออกที่ง่ายที่สุดฉันแค่ลองใช้ PShell บน Windows ของฉันและเปิด SSH บน RHEL ถามรหัสผ่านคัดลอกไฟล์และปิด และมันใช้งานได้!
Raffaeu

0

ใช้เครื่องมือ Beyond Compare หากไม่ใช่กูรูของบรรทัดคำสั่ง Beyond Compare เป็นเครื่องมือเปรียบเทียบโฟลเดอร์และมีอินเทอร์เฟซผู้ใช้ที่ดีและช่วยให้คุณใช้ไฟล์ส่วนตัวของ SFTP และ SSH สำหรับสภาพแวดล้อมที่แตกต่างกันที่คุณพยายามเข้าสู่ระบบ นี่คือลิงค์ไปยังเครื่องมือ [ https://www.scootersoftware.com/ เหมือนพี่น้อง 1]


0

เนื่องจากคุณคุ้นเคยกับผงสำหรับอุดรูอยู่แล้ว ผมขอแนะนำให้คุณลองดูที่https://mobaxterm.mobatek.net/ MobaXterm มีทุกสิ่งที่คุณต้องการในการทำงานระยะไกลบน Linux จากคอมพิวเตอร์ windows, ssh, sftp, scp, Xwindows มันดีกว่าฉาบมากในความคิดของฉัน


มันเป็นฟรี (ไม่มีค่าใช้จ่าย) สำหรับการใช้งานส่วนตัว เช่นเพื่อ SSH ไปยังห้องปฏิบัติการคอมพิวเตอร์ของโรงเรียน (เช่นในคำถาม)?
Pierre.Vriens

ใช่. MobaXterm นั้นฟรีสำหรับใช้ในเชิงพาณิชย์เว้นแต่คุณจะต้องบันทึกมากกว่า 10 ครั้ง ฉันเป็นนักพัฒนาซอฟต์แวร์และรุ่นฟรีทำงานได้อย่างสมบูรณ์แบบสำหรับงานของฉัน สำหรับงานโรงเรียนเพียงไปข้างหน้า
Cen R.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.