ใช้เบราว์เซอร์จริงแทน w3m บนการเชื่อมต่อ SSH


10

ฉันใช้ Ubuntu เป็นเดสก์ท็อปและเซิร์ฟเวอร์ OS เมื่อฉันเข้าสู่เซิร์ฟเวอร์ผ่านsshบนterminalและต้องดูหน้าเว็บ (localhost) บนเซิร์ฟเวอร์ฉันใช้ w3m ( w3m localhost)

น่าเสียดายที่ w3m นั้นใช้งานไม่ง่ายเนื่องจากหน้าเว็บมีเมนูขนาดใหญ่และใช้ jQuery ดังนั้นฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะใช้เบราว์เซอร์บนเดสก์ท็อปของฉันเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน SSH ด้วยเบราว์เซอร์จริง (Firefox หรือ Chrome)

โดยทั่วไปจะต้องเชื่อมต่อกับเบราว์เซอร์บนเดสก์ท็อปของฉันไปยังเซิร์ฟเวอร์ผ่าน SSH ด้วยusernameและpasswordและเปิดบนเซิร์ฟเวอร์localhostนั้น

เป็นไปได้ตามค่าเริ่มต้นหรือมีส่วนเสริมสำหรับ Firefox / Chrome หรือไม่ ฉันต้องการ Firefox


ไม่ใช่คำตอบสำหรับคำถามของคุณ แต่ ... แล้วการใช้ X forwarding ล่ะ
Javier Rivera

1
ทำไมคุณไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลผ่าน http ได้? คุณต้องการการร้องขอมาจาก localhost โดยเฉพาะเพื่อการทดสอบหรือไม่? @ Javier X forwarding โดยเฉพาะอย่างยิ่งสำหรับ Firefox นั้นมีแบนด์วิดท์สูงและฉันไม่แนะนำให้ใช้สำหรับการเชื่อมต่อที่ไม่ใช่แบบโลคอล
Carsten Thiel

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

ใช่แบนด์วิดท์เป็นข้อกังวลเมื่อส่งต่อ X
Javier Rivera

คำตอบ:


14

ใช้การส่งต่อพอร์ต ssh

เชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลได้ดังนี้:

ssh -L 8080:localhost:80 user@remoteserver

ตอนนี้ให้เบราว์เซอร์โลคัลของคุณไปที่ localhost: 8080 ควรส่งต่อไปยัง localhost: 80 ในเซิร์ฟเวอร์ระยะไกล


ฉันเพิ่งทดสอบสิ่งนี้บนเซิร์ฟเวอร์ในเครือข่ายท้องถิ่นของฉันและดูเหมือนว่าจะใช้งานได้ ฉันจะทดสอบในภายหลังด้วยเซิร์ฟเวอร์ระยะไกล
Pit

6

ส่วนที่ 1

ทำพร็อกซี่ถุงเท้าด้วย ssh!

ssh -D 9999 user@remoteserver

ตอนนี้เปิดการตั้งค่า Firefox ของคุณไปที่ขั้นสูง> เครือข่าย> การตั้งค่า เลือกการกำหนดค่าพร็อกซีด้วยตนเอง ใส่ localhost สำหรับ SOCKS Host ใส่ 9999 สำหรับพอร์ต ทดสอบโดยไปที่http://whatismyip.orgหรือเว็บไซต์ที่คล้ายกัน

เนื่องจากคุณบอกว่าคุณกำลังพยายามเข้าถึงเว็บเพจที่ localhost (สัมพันธ์กับเซิร์ฟเวอร์ของคุณ) คุณอาจไม่ต้องการยกเว้น localhost และ 127.0.0.1 จากการใช้พรอกซี แน่นอนคุณสามารถใช้ไอพีท้องถิ่นของเซิร์ฟเวอร์ ..

หากคุณไม่ชอบคำอธิบายของฉันลิงก์เหล่านี้จะเพิ่มหน่วยความจำของฉันในขณะที่เขียนสิ่งนี้:

http://linux.die.net/man/1/ssh

http://embraceubuntu.com/2006/12/08/ssh-tunnel-socks-proxy-forwarding-secure-browsing/

https://calomel.org/firefox_ssh_proxy.html

ส่วนที่ 2

ข้อผิดพลาดที่คุณได้รับchannel 3: open failed: connect failed: Connection refusedไม่มีส่วนเกี่ยวข้องกับ ssh เห็นได้ชัดว่าคุณกำลังพยายามเข้าถึงสิ่ง mysql สิ่งนี้มีความท้าทายเป็นพิเศษเนื่องจาก mysql บล็อกการเข้าถึงจาก ssh tunnels โดยค่าเริ่มต้น ฉันไม่ทำ mysql ดังนั้นฉันไม่รู้ว่าฉันกำลังพูดถึงอะไรที่เหลืออยู่ ฉันแค่อ้างถึงบิตที่เกี่ยวข้องของลิงค์ในตอนท้ายซึ่งคุณควรอ่าน

เปิด /etc/mysql/my.cnf และค้นหาส่วน [mysqld] หากคุณเห็นบรรทัด "การข้ามเครือข่าย" ให้แสดงความคิดเห็น เพิ่ม "bind-address = 127.0.0.1" (โดยไม่ต้องใส่เครื่องหมายคำพูด)

http://www.debuntu.org/port-forwarding-and-channel-3-open-failed-connect-failed-Connection-refused

ส่วนที่ 3

โซลูชันของ Javier ssh -L 8080:localhost:80 user@remoteserverนั้นยอดเยี่ยมหากคุณต้องการเข้าถึงที่ตั้งเดียว มันช่วยให้คุณเข้าถึง localhost และปล่อยให้อินเทอร์เน็ตที่เหลืออยู่คนเดียว วิธีแก้ปัญหาของฉันกับ ssh -D นั้นมากขึ้นและจะนำคำขอ HTTP ทั้งหมดของคุณไปยังเซิร์ฟเวอร์ระยะไกล เห็นได้ชัดว่าคุณอาจไม่ต้องการสิ่งนี้ แต่ฉันพบว่ามันมีประโยชน์เมื่อฉันต้องการให้ http เข้าถึงเครื่องทั้งหมดในเครือข่ายหรือเมื่อฉันไม่ต้องการให้คำขอ HTTP ของฉันผ่านเครือข่ายที่ฉันเชื่อมต่อ (เช่นธนาคารออนไลน์ที่ starbucks การรับส่งข้อมูลทั้งหมดของฉันไป ผ่านอุโมงค์ ssh ไปยังอินเทอร์เน็ตที่บ้านของฉัน)


เมื่อวันที่ขอ 'localhost' ใน Firefox ฉันได้รับข้อผิดพลาดใน terminal ที่ผมเปิด SSH channel 3: open failed: connect failed: Connection refusedเชื่อมต่อไปนี้: ฉันไม่มีเวลาเงยหน้าขึ้นมอง แต่บางทีคุณอาจรู้ว่ามันเป็นอย่างไร
Pit

ฉันเพิ่งเห็นใน man page ของ ssh ที่คุณต้องรูทเพื่อใช้-Dตัวเลือก นี่คือเหตุผลที่มันไม่ได้และจะไม่ทำงานเนื่องจากฉันไม่สามารถเชื่อมต่อเป็น root ไปยังเซิร์ฟเวอร์ (เพื่อเหตุผลด้านความปลอดภัย)
Pit

อะไร? ฉันใช้สิ่งนี้ตลอดเวลาในฐานะผู้ใช้ปกติที่ปลายทั้งสองของอุโมงค์ อ้อเข้าใจแล้ว. คุณต้องรูทหากคุณลองและใช้พอร์ตเช่น 80 หรือ 21 หรือพอร์ตสำรอง IANA อื่น ๆ อะไรที่มากกว่า 1024 ควรจะดี ฉันคิดว่าข้อผิดพลาดเกี่ยวกับการปิดกั้น ssh.conf ของคุณส่งต่อ ตอนนี้ฉันกำลังไปตามสายเหล่านั้น
djeikyb

ฉัน googled ข้อผิดพลาดของคุณและมาพร้อมกับบทความนี้ที่ระบุว่า mysql มีคุณสมบัติ "ความปลอดภัย" ที่บล็อกการเข้าถึงจากพอร์ตส่งต่อโดยค่าเริ่มต้น debuntu.org/…
djeikyb

2

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

  1. เมื่อเชื่อมต่อกับ SSH กับเซิร์ฟเวอร์ให้เพิ่มแฟล็ก -X ตัวอย่างเช่นssh -X myserver.
  2. ติดตั้งเบราว์เซอร์ GUI บนเซิร์ฟเวอร์และเรียกใช้ ผลลัพธ์จะปรากฏบนคอมพิวเตอร์ส่วนบุคคลของคุณผ่านการส่งต่อ X และการเชื่อมต่อ SSH ที่ปลอดภัย

อย่างที่ Carsten พูดถึงในความคิดเห็นของเขากับคำถามของฉันและเกี่ยวกับเซิร์ฟเวอร์ระยะไกลไม่ได้อยู่ในเครือข่ายท้องถิ่นของฉันสิ่งที่เกี่ยวกับแบนด์วิดธ์?
Pit

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