ย้อนกลับ SCP ผ่านการเชื่อมต่อ SSH


17

ฉันมักจะต้องการไฟล์บางไฟล์จากเซิร์ฟเวอร์บางตัวเมื่อฉันอยู่บนแล็ปท็อปของฉัน แต่ถ้าผมไม่ทราบว่าเป็นแฟ้มที่ผมต้องsshเข้าสู่เซิร์ฟเวอร์มองไปรอบ ๆแล้วexit scp server:file .ถ้าฉันทำงานกับเดสก์ท็อปและเซิร์ฟเวอร์ของฉันซึ่งทั้งคู่มี IP แบบคงที่ฉันสามารถ SCP ย้อนกลับไฟล์ได้ ( scp desktop:~ file) แต่ฉันไม่สามารถทำได้สำหรับแล็ปท็อปของฉัน SCP มีวิธีที่ดีในการย้อนไฟล์ผ่านการเชื่อมต่อ SSH หรือไม่? ดังนั้นคอมพิวเตอร์ที่ฉันเชื่อมต่อกับ SSH จะส่งไฟล์ย้อนกลับไปยังไคลเอนต์หรือไม่


ทำไมไม่ใช้ mDNS
Ignacio Vazquez-Abrams

1
ฉันเชื่อว่าคำถามนี้ได้รับคำตอบอย่างถูกต้องแล้วที่นี่: unix.stackexchange.com/a/2869
shellster

คำตอบ:


20

มันจะง่ายขึ้นมากกับ SFTP ซึ่งเป็นส่วนเสริมของ SSH ที่รองรับการทำงานของไฟล์ที่ซับซ้อนกว่า SCP การกระจาย Unix และ Linux ที่ทันสมัยแทบทั้งหมดสนับสนุน หากต้องการใช้งานให้เรียกใช้คำสั่งนี้เพื่อเชื่อมต่อกับเซิร์ฟเวอร์:

sftp server

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

get file.txt

หากต้องการดาวน์โหลด/home/pavpanchekha/textfiles/file.txtบนเซิร์ฟเวอร์ไปยัง~/textfiles/บนเครื่องท้องถิ่นของคุณให้เรียกใช้:

get /home/pavpanchekha/textfiles/file.txt ~/textfiles/

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

put file.txt

คุณยังสามารถใช้เส้นทางแบบเต็มสำหรับแต่ละอย่างเช่นget:

put ~/textfiles/file.txt /home/pavpanchekha/textfiles/file.txt

สำหรับรายการทั้งหมดของคำสั่ง SFTP ที่พร้อมใช้งานเพียงแค่เรียกใช้helpที่sftp>พรอมต์


1
ขอบคุณมาก มีวิธีใดที่จะเปิดใช้งานแบบย้อนกลับถ้าฉันอยู่ในการเชื่อมต่อ SSH อยู่แล้ว? มิฉะนั้นฉันก็พบว่าตัวเองกำลังอยู่ที่ไหนสักแห่งโดยตระหนักว่าฉันต้องการถ่ายโอนไฟล์ออกจากการเชื่อมต่อ SSH ทำการเชื่อมต่อ SFTP ออกจากนั้นเลิกและกลับไปที่ SSH
pavpanchekha

2
@pav: SSH_CLIENTตัวแปรสภาพแวดล้อมมีที่อยู่ IP ของโฮสต์ที่เชื่อมต่อกับข้อมูลอื่น ๆ คุณสามารถใช้มันเพื่อสร้างนามแฝงของเชลล์เพื่อ SFTP กลับไปยังโฮสต์ต้นทางได้อย่างง่ายดาย เพียงเพิ่มบรรทัดนี้ลง~/.bashrcในเซิร์ฟเวอร์: alias sftpback="sftp $(echo $SSH_CLIENT | awk '{print $1}')" จากนั้นยกเลิกการเชื่อมต่อและเชื่อมต่อใหม่จาก SSH เพื่อให้การเปลี่ยนแปลงมีผลหรือเรียกใช้ราวกับว่าเป็นคำสั่งเพื่อให้มีผลทันที จากตรงนั้นคุณสามารถเรียกใช้งานsftpbackSFTP กลับไปยังไคลเอนต์ที่คุณกำลังเชื่อมต่อได้
แพทช์

นี่มันสุดยอด !!! ขอบคุณสำหรับการบันทึกฉันจาก NANO (การแก้ไขไฟล์ออนไลน์) ทำให้กระบวนการง่ายขึ้น
Mohsin

0

ตัวจัดการไฟล์คอนโซล Midnight Commander (mc) มีระบบ VFS ที่อนุญาตการเชื่อมต่อ SFTP / การจัดการไฟล์ไปยังเซิร์ฟเวอร์ระยะไกล นอกจากนี้ยังทำงานในCygwinบน Windows อินเตอร์เฟสเริ่มต้นแสดงสองพาเนลอิสระ เราสามารถเปิดไดเรกทอรีระยะไกล SFTP ในหนึ่งในนั้นและถ่ายโอนไฟล์ไปยัง / จากแผงอื่น ๆ ได้อย่างง่ายดาย รวมถึงโปรแกรมแก้ไขไฟล์ / โปรแกรมดู (mcedit) พร้อมการเน้นไวยากรณ์

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