SSH กลับไปที่เครื่องโลคัลจากเซสชัน SSH ระยะไกล


12

ฉันพยายามทำบางสิ่งที่ผิดปกติ (สำหรับฉันแล้ว) กับ SSH และฉันไม่สามารถทำงานได้หวังว่าคุณจะสามารถช่วยได้

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

ในตอนนี้ถ้าฉัน SSH กลับไปที่โลคัลเครื่องเมื่อฉันล็อกอินเข้าสู่รีโมตเซิร์ฟเวอร์เทอร์มินัลจะนั่งอยู่ที่นั่นและไม่ผิดพลาดแม้แต่กับ -v

ฉันพยายามค้นหาว่าฉันควรจะโทรไปที่ใดโดยดูที่ผลลัพธ์ของตัวแปร $ SSH_CLIENT แต่ฉันใช้การเชื่อมต่ออินเทอร์เน็ตมาตรฐานวานิลลา (ไม่มีที่อยู่ ip แบบคงที่) ฉันคิดว่านี่อาจเป็นสาเหตุของปัญหา

สิ่งที่ฉันสร้างขึ้น: ฉันใช้ Mac (OS X 10.6.4) และฉันได้เปิดใช้งานการเข้าสู่ระบบระยะไกลในการตั้งค่าระบบ / การแบ่งปันหากฉันลองและ SSH เข้าสู่ mac ของฉันจากเครื่องอื่นบน LAN ฉันไม่สามารถเชื่อมต่อได้ ถ้าฉันลองและ SSH ไปยังเซิร์ฟเวอร์อื่น (ไม่ใช่เครื่องของฉัน) จากเซิร์ฟเวอร์ระยะไกลของฉันฉันสามารถเชื่อมต่อได้โดยไม่มีปัญหา

ดังนั้นข้อเท็จจริงข้างต้นทำให้ฉันคิดว่าฉันชัดเจนเกี่ยวกับไฟร์วอลล์ ฯลฯ ในเครื่องท้องถิ่นและระยะไกล

ฉันแน่ใจว่าฉันต้องคิดถึงบางสิ่งบางอย่างที่ชัดเจนที่นี่ แต่สำหรับชีวิตของฉันฉันไม่สามารถจัดการกับมันได้

ความช่วยเหลือลิงค์หรือเขยิบทั่วไปในทิศทางที่ถูกต้องจะได้รับการชื่นชมอย่างมาก!


คุณสามารถเรียกดูเซิร์ฟเวอร์ระยะไกลด้วย ssh หรือคุณพยายามใช้ afs? วิธีการเกี่ยวกับ portforwardings และ / หรือ sftp / scp
Andreas Rehm

สวัสดี. ใช่ฉันสามารถเชื่อมต่อและเรียกดูโครงสร้างไดเรกทอรีของเซิร์ฟเวอร์ระยะไกลได้โดยไม่มีปัญหา ฉันไม่แน่ใจว่าคุณหมายถึงอะไรขอโทษ โดยทั่วไปแผนคือ: ฉันต้องการ ssh ในเซิร์ฟเวอร์ Linux ระยะไกลของฉันจากเครื่อง Mac ของฉันเรียกดูไฟล์แล้วสามารถไปป์มันกลับลงการเชื่อมต่อที่จัดตั้งขึ้น (หรือสร้างการเชื่อมต่อใหม่ขึ้นอยู่กับการจัดตั้งขึ้นแล้ว) เครื่องท้องถิ่นที่แอพ Mac จะอ่าน / แก้ไขข้อมูลก่อนที่จะส่งกลับไปยังเซิร์ฟเวอร์ ฉันไม่ได้สับสนโดยเฉพาะอย่างยิ่งว่าฉันประสบความสำเร็จในแง่ของการเกี่ยวข้องกับโปรโตคอลอื่น ๆ
i0n

คำตอบ:


9

หากเมื่อคุณเชื่อมต่อกลับไปยังพื้นที่ของคุณมันจะอนุญาตให้คุณเข้าสู่ระบบก่อนที่จะทำการแฮงค์นี่ไม่ใช่คำตอบ หากคุณไม่ได้มาไกลขนาดนั้นคุณอาจไม่ได้กลับไปที่ Mac ของคุณ (ไม่ไปไหนก็ได้หรือกด SSH บนเกตเวย์) ลองใช้ช่องสัญญาณย้อนกลับ (จะต้องตั้งค่า GatewayPorts เป็นเปิดใน sshd_config บนเซิร์ฟเวอร์ของคุณ แต่ฉันเชื่อว่านี่เป็นค่าเริ่มต้น):
you@yourMac$ ssh -R 2000:localhost:22 user@remoteserver
ที่ควรอนุญาตให้คุณเชื่อมต่อกับเซิร์ฟเวอร์ตามปกติ แต่ยังเปิดช่องสัญญาณเพื่อให้คุณสามารถเชื่อมต่อได้ พอร์ต 2000 (พอร์ตใดก็ตามที่เกิน 1024 ควรใช้งานได้) ดังนั้นyou@yourserver$ ssh -p2000 user@localhost

แก้ไข: เปลี่ยนชื่อโฮสต์เป็น localhost


2
คุณต้องใช้ user @ localhost ในคำสั่งสุดท้าย
b0fh

1
สิ่งนี้มีประโยชน์เกือบจะพาฉันไปที่ที่ฉันอยากอยู่! ฉันสามารถสร้างการเชื่อมต่อกับ reverse tunnel ดังกล่าวแล้ว ssh กลับเข้าสู่เครื่อง Mac โดยใช้ ssh -p 2000 i0n @ localhost ดังนั้นฉันจะประสบความสำเร็จในสิ่งนี้โดยไม่ต้องรู้ล่วงหน้าว่าต้องการฟังก์ชั่นนี้ได้อย่างไร กล่าวอีกนัยหนึ่งด้วยการเชื่อมต่อ ssh ที่มีอยู่และมาตรฐาน เป็นไปได้ไหม
i0n

ขอบคุณ b0fh ฉันกำลังจะไปนอนแล้วฉันเขียนนั่น =) i0n - โดยสัญชาตญาณฉันอยากจะบอกว่าคุณไม่สามารถแก้ไขการเชื่อมต่อที่มีอยู่เพื่อทำสิ่งนี้ได้ แต่ PuTTY สามารถทำได้ดังนั้นต้องมีวิธี คุณสามารถส่งการเชื่อมต่อ SSH ใหม่ที่มีช่องสัญญาณเมื่อคุณต้องการย้อนกลับ แต่ฉันเดาว่าสิ่งนี้จะต้องดำเนินการทางโปรแกรมเพื่อที่อาจจะไม่ใช่ตัวเลือก ค้นหาความคาดหวัง - หากมีภาษาใดที่สามารถผ่าน SSH ได้ก็จะเป็นเช่นนั้น
James L

2

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

อย่างไรก็ตามถ้าคุณต้องการแก้ไขไฟล์ทำไมคุณไม่ใช้ scp เพื่อคัดลอกไฟล์ไปยังเครื่องของคุณ คุณสามารถใช้ ssh เพื่อเรียกดูไฟล์บนรีโมตเซิร์ฟเวอร์และเมื่อคุณมีพา ธ ให้ป้อนในเครื่องโลคัลของคุณ (ในเทอร์มินัลอื่น):

scp user@server:/path/to/file/on/server /local/path/to/save/file

หากต้องการนำไฟล์กลับมาให้ scp สลับพา ธ อีกครั้ง

Obs: คุณไม่จำเป็นต้องเชื่อมต่อ ssh เริ่มต้นเพื่อใช้ scp - มันจะสร้างขึ้นมาใหม่

ด้านบนนี้คือถ้าคุณต้องการเข้าถึงในเทอร์มินัล บน linux (และแน่นอนบน Mac แต่ฉันไม่รู้วิธีการทำ) คุณสามารถ mount ตำแหน่ง ssh ระยะไกลในเครือข่ายและใช้การเชื่อมต่อเมื่อคุณใช้โลคัลดิสก์ (นี่คือ sftp และการเชื่อมต่ออยู่ในรูปแบบ: sftp://user@server:/path/to/mountและฉันคิดว่านี่เป็นสิ่งที่คุณต้องการแทนการเชื่อมต่อเทอร์มินัลระยะไกลเพื่อให้คุณสามารถแก้ไขไฟล์ได้โดยตรงด้วยแอปพลิเคชัน Mac


1

คุณอาจต้องการดูsshfs(คุณต้องมีMacFuseสำหรับสิ่งนี้) สิ่งนี้ช่วยให้คุณสามารถเมานต์ไดเร็กทอรีบนเครื่องระยะไกลและเข้าถึงได้เช่นเดียวกับโฟลเดอร์ปกติในเครื่องของคุณ ยิ่งไปกว่านั้นคุณยังสามารถsshเข้าไปในเครื่องและสร้าง / ค้นหาไฟล์ที่คุณต้องการ การถ่ายโอนไฟล์เหล่านั้นจะง่ายเหมือนการโอนไฟล์ในเครื่อง

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