วิธีตั้งค่าการส่งต่อ X11 บน Linux ผ่าน SSH

การส่งต่อ X11 ช่วยให้คุณสามารถเรียกใช้แอปพลิเคชันกราฟิกของ Linux บนคอมพิวเตอร์ระยะไกลและแสดงหน้าต่างของแอปพลิเคชันนั้นบนเดสก์ท็อปในเครื่องของคุณผ่าน SSHตั้งค่าโดยการเปิดใช้งานการส่งต่อในเซิร์ฟเวอร์ SSH ระยะไกล ตรวจสอบว่าเซิร์ฟเวอร์มีxauthตรวจสอบว่าเดสก์ท็อปในเครื่องของคุณมีจอแสดงผล X และเชื่อมต่อด้วยssh -Xการส่งต่อนี้จะส่งต่อหน้าต่างแอปพลิเคชันแต่ละหน้าต่าง ไม่ได้สร้างเซสชันเดสก์ท็อประยะไกลแบบเต็มรูปแบบ

สิ่งที่คุณต้องเตรียมก่อนติดตั้ง

คอมพิวเตอร์ที่คุณพิมพ์คำสั่ง SSH คือไคลเอ็นต์มันต้องการไคลเอ็นต์ OpenSSH และเซสชันเดสก์ท็อปแบบกราฟิกที่ใช้งานอยู่พร้อมจอแสดงผล X เดสก์ท็อป Linux หลายเครื่องมีสิ่งนี้ให้โดยตรงหรือผ่าน XWayland เมื่อเซสชันใช้ Wayland หากecho "$DISPLAY"บนเดสก์ท็อปในเครื่องไม่แสดงอะไรเลย แสดงว่าไม่มีจอแสดงผลให้ SSH ใช้ในเชลล์นั้น

คอมพิวเตอร์ระยะไกลคือเซิร์ฟเวอร์มันต้องการเซิร์ฟเวอร์ OpenSSH และxauthยูทิลิตี้เพื่อให้ SSH สามารถสร้างคุกกี้การอนุญาตชั่วคราวที่ใช้สำหรับการแสดงผลที่ส่งต่อได้ บน Debian หรือ Ubuntu ให้ติดตั้งบนระบบระยะไกลด้วยคำสั่ง `pip install openssh` และ `pip install openssh` บนดิสทริบิวsudo apt updateชันsudo apt install openssh-server xauthอื่น ให้ใช้ตัวจัดการแพ็กเกจของดิสทริบิวชันนั้นเพื่อติดตั้งเซิร์ฟเวอร์ OpenSSH และแพ็กเกจที่ให้ยู ทิลิตี้ `pip install openssh` ตรวจสอบ xauthให้แน่ใจว่ามีการใช้งานการเข้าสู่ระบบ SSH ปกติก่อนที่จะเปลี่ยนแปลงการกำหนดค่า

หน้าต่างเทอร์มินัล Linux แสดงคำสั่ง ssh และ xauth ที่พบในระบบโลคัล
ตรวจสอบว่าเทอร์มินัลในเครื่องสามารถเรียกใช้ไคลเอ็นต์ OpenSSH ได้หรือไม่ และเซิร์ฟเวอร์ระยะไกลก็จำเป็นต้องมี xauth ด้วย

ตั้งค่าการส่งต่อ X11 ผ่าน SSH

1. เปิดใช้งานการส่งต่อในการตั้งค่าเซิร์ฟเวอร์

บนคอมพิวเตอร์ระยะไกล ให้แก้ไขไฟล์การกำหนดค่าเซิร์ฟเวอร์ ซึ่งโดยปกติจะอยู่ ในโฟลเดอร์ `server.config`/etc/ssh/sshd_configโดยใช้โปรแกรมแก้ไขข้อความที่มีสิทธิ์ผู้ดูแลระบบ:

sudoedit /etc/ssh/sshd_config

ค้นหาX11Forwardingการตั้งค่าที่ใช้งานอยู่แล้วและเปลี่ยนเป็น:

X11Forwarding yes

หากไม่มีการตั้งค่า ให้เพิ่มในส่วนส่วนกลางก่อนMatchบล็อกใดๆ บางระบบปฏิบัติการอาจโหลดไฟล์จากที่อื่นด้วย/etc/ssh/sshd_config.d/ตรวจสอบไฟล์ที่รวมอยู่เพื่อหาการตั้งค่าที่ขัดแย้งกันMatchกฎหรือDisableForwarding yesอาจยังคงป้องกันการส่งต่อสำหรับบัญชีใดบัญชีหนึ่งได้ ปล่อยไว้X11UseLocalhostที่ค่าเริ่มต้นเว้นแต่คุณจะมีปัญหาความเข้ากันได้เฉพาะ: OpenSSH โดยปกติจะผูกพร็อกซีการส่งต่อเข้ากับลูปแบ็กคู่มือ sshd_config อย่างเป็นทางการ อธิบายตัวเลือกฝั่งเซิร์ฟเวอร์เหล่านี้

การกำหนดค่าเซิร์ฟเวอร์ SSH โดยเปิดใช้งานคำสั่ง X11Forwarding yes
การตั้งค่าเซิร์ฟเวอร์ควรอยู่ในไฟล์ sshd_config ไม่ใช่ไฟล์ ssh_config ของไคลเอ็นต์ SSH

2. ตรวจสอบความถูกต้องของการตั้งค่าและรีโหลด SSH

ก่อนที่จะโหลดดีมอนใหม่ โปรดตรวจสอบไฟล์เพื่อหาข้อผิดพลาดทางไวยากรณ์และยืนยันค่าการส่งต่อที่มีผล:

sudo sshd -t
sudo sshd -T | grep -i '^x11forwarding'

คำสั่งแรกควรทำงานเสร็จโดยไม่มีข้อผิดพลาด ส่วนคำสั่งที่สองควรรายงานผลลัพธ์x11forwarding yesหากคุณใช้Matchกฎ ให้ทดสอบการกำหนดค่าที่ใช้งานได้สำหรับผู้ใช้และการเชื่อมต่อที่เกี่ยวข้องตามที่อธิบายไว้ในคู่มือ OpenSSH แก้ไขข้อผิดพลาดใด ๆ ก่อนที่จะโหลดใหม่เพื่อไม่ให้การเข้าถึง SSH หยุดชะงัก

รีโหลดชื่อบริการที่ใช้โดยระบบปฏิบัติการของคุณ โดยทั่วไป Debian และ Ubuntu จะใช้ชื่อบริการดังนี้:

sudo systemctl reload ssh

ระบบ Fedora และตระกูล RHEL มักใช้:

sudo systemctl reload sshd

หากไม่รองรับการโหลดซ้ำ ให้ใช้restartสำหรับบริการเดียวกัน รักษาการเชื่อมต่อปัจจุบันให้เปิดอยู่ และทดสอบการเชื่อมต่อใหม่ก่อนปิดเอกสารประกอบการใช้งานเซิร์ฟเวอร์ OpenSSH ของ Ubuntu ครอบคลุมไฟล์เซิร์ฟเวอร์และตัวอย่างการกำหนดค่าที่ใช้ใน Ubuntu

3. เชื่อมต่อจากเดสก์ท็อป Linux ในเครื่องของคุณ

บนฝั่งไคลเอ็นต์ ให้ร้องขอการส่งต่อ X11 ที่ไม่น่าเชื่อถือด้วย-X:

ssh -X user@server.example.com

แทนที่ชื่อผู้ใช้และโฮสต์ตัวอย่างด้วยชื่อและโฮสต์ของคุณเอง หากเซิร์ฟเวอร์ SSH ทำงานบนพอร์ตที่ไม่ใช่พอร์ตมาตรฐาน ให้เพิ่มหมายเลขพอร์ตด้วย-p:

ssh -X -p 2222 user@server.example.com

หลังจากลงชื่อเข้าใช้แล้ว ให้เริ่มโปรแกรมกราฟิกที่ติดตั้งอยู่บนโฮสต์ระยะไกล สำหรับการตรวจสอบอย่างรวดเร็ว ให้เรียกใช้xclockโปรแกรมทดสอบหากมี หรือเรียกใช้โปรแกรม GUI อื่นๆ ที่ติดตั้งไว้ SSH จะตั้งDISPLAYค่าเซสชันระยะไกลและส่งต่อการเชื่อมต่อ X11 โดยอัตโนมัติ อย่าคัดลอกค่าการแสดงผลในเครื่องของคุณไปยังเซิร์ฟเวอร์หรือตั้งค่าด้วยตนเอง

เทอร์มินัล Linux ในเครื่องโลคอลเชื่อมต่อกับโฮสต์ระยะไกลด้วยคำสั่ง ssh -X
ตัวเลือก นี้-Xร้องขอการส่งต่อ X11 เมื่อเซสชัน SSH เริ่มทำงาน
แอปพลิเคชัน xclock ระยะไกลแสดงอยู่ข้างๆ เทอร์มินัล SSH บนเดสก์ท็อป Linux
แอปพลิเคชัน GUI ที่ส่งต่อจะปรากฏเป็นหน้าต่างบนเดสก์ท็อปในเครื่องขณะที่เซสชัน SSH ยังคงเปิดอยู่

ความปลอดภัยและการแก้ไขปัญหา

ใช้-Xเป็นค่าเริ่มต้น-Yตัวเลือกนี้เปิดใช้งานการส่งต่อที่เชื่อถือได้ ซึ่งจะลบข้อจำกัดด้านความปลอดภัยของ X11 และทำให้แอปพลิเคชันระยะไกลเข้าถึงจอแสดงผลในเครื่องของคุณได้กว้างขึ้น ใช้เฉพาะกับเซิร์ฟเวอร์และแอปพลิเคชันที่คุณเชื่อถือเท่านั้น OpenSSH เตือนว่าการส่งต่อ X11 อาจทำให้จอแสดงผลของไคลเอ็นต์เสี่ยงต่อการโจมตี โปรดดูคู่มือ sshและคู่มือ ssh_configสำหรับความแตกต่างระหว่างการส่งต่อที่เชื่อถือได้และไม่น่าเชื่อถือ

  • “การร้องขอการส่งต่อ X11 ล้มเหลว”:X11Forwarding ตรวจสอบ ค่าที่มีผลบังคับใช้ของเซิร์ฟเวอร์ ยืนยันว่า xauthได้ติดตั้งบนโฮสต์ระยะไกลแล้ว และมองหาMatchการบล็อกหรือDisableForwardingการตั้งค่า ที่จำกัดใดๆ
  • DISPLAYหากเซสชันระยะไกลว่างเปล่า:ให้ตัดการเชื่อมต่อแล้วเชื่อมต่อใหม่โดยใช้คำสั่ง `npm install` ssh -Xตรวจสอบให้แน่ใจว่าเชลล์ในเครื่องมีหน้าจอแสดงผลแบบกราฟิกทำงานอยู่ และการเชื่อมต่อไปถึงเซิร์ฟเวอร์ที่คุณเพิ่งกำหนดค่าไว้
  • หน้าต่างแจ้งว่าไม่สามารถเปิดหน้าจอแสดงผลได้:โปรดตรวจสอบว่าเซสชันเดสก์ท็อปในเครื่องของคุณยังคงใช้งานอยู่หรือไม่ เชลล์ที่ไม่มีสิทธิ์เข้าถึงหน้าจอแสดงผลเดสก์ท็อปจะไม่สามารถแสดงหน้าต่างที่ส่งต่อได้
  • xclockไม่พบ:โปรแกรมทดสอบไม่มีอยู่จริง ลองใช้แอปพลิเคชัน GUI ที่ติดตั้งไว้แล้วบนเครื่องระยะไกล ข้อความนี้เพียงอย่างเดียวไม่ได้พิสูจน์ว่าการส่งต่อ SSH เสียหาย

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

ฝากความเห็น

วิธีการค้นหาและลบไฟล์ซ้ำบน Linux ด้วย FSlint

วิธีการค้นหาและลบไฟล์ซ้ำบน Linux ด้วย FSlint

ใช้ FSlint เพื่อสแกนโฟลเดอร์ Linux ที่เลือก ตรวจสอบกลุ่มไฟล์ที่ซ้ำกัน และลบไฟล์ที่ไม่จำเป็นอย่างปลอดภัย หรือเรียนรู้ว่าเมื่อใดควรผสานฮาร์ดลิงก์

วิธีการติดตั้ง Latte Dock บน KDE Plasma 5

วิธีการติดตั้ง Latte Dock บน KDE Plasma 5

ติดตั้ง Latte Dock บนระบบ KDE Plasma 5 ที่รองรับ จัดเรียงแผงด้านข้าง และเปิดใช้งานการเริ่มต้นเมื่อเข้าสู่ระบบ ตรวจสอบความพร้อมใช้งานของแพ็กเกจและข้อจำกัดของ Plasma 6

วิธีใช้งาน Dropbox บน Linux: ติดตั้งและซิงค์ไฟล์ของคุณ

วิธีใช้งาน Dropbox บน Linux: ติดตั้งและซิงค์ไฟล์ของคุณ

ติดตั้ง Dropbox บน Linux จากแพ็กเกจอย่างเป็นทางการ ลงชื่อเข้าใช้ ซิงค์โฟลเดอร์ในเครื่อง จัดการการซิงค์แบบเลือก และตรวจสอบสถานะจากบรรทัดคำสั่ง

วิธีบันทึกเสียงพูดจากลำโพงบน Linux ด้วย Audacity

วิธีบันทึกเสียงพูดจากลำโพงบน Linux ด้วย Audacity

บันทึกเสียงเดสก์ท็อป Linux ใน Audacity โดยกำหนดเส้นทางสตรีมการบันทึกไปยังแหล่งสัญญาณมอนิเตอร์ของอุปกรณ์เอาต์พุตของคุณ ทำตามขั้นตอนของ PulseAudio และ PipeWire รวมถึงเคล็ดลับการส่งออกและวิธีแก้ไขปัญหาแทร็กเงียบ

วิธีการเปลี่ยนจาก Bash เป็น Zsh บน Linux

วิธีการเปลี่ยนจาก Bash เป็น Zsh บน Linux

ติดตั้ง Zsh บน Ubuntu, Fedora, Arch หรือ openSUSE ทดสอบก่อนเปลี่ยนเชลล์ล็อกอิน ย้ายการตั้งค่า Bash อย่างปลอดภัย และเพิ่ม Oh My Zsh ได้ตามต้องการ

วิธีการติดตั้ง Inkscape บน Linux: Ubuntu, Fedora, Arch และอื่นๆ

วิธีการติดตั้ง Inkscape บน Linux: Ubuntu, Fedora, Arch และอื่นๆ

ติดตั้ง Inkscape จากที่เก็บซอฟต์แวร์ของระบบปฏิบัติการ Linux ของคุณ, Ubuntu stable PPA, Snap หรือ Flathub โดยใช้คำสั่งและหมายเหตุปัจจุบันสำหรับการเลือกแหล่งที่มาของแพ็กเกจ

วิธีฟังวิทยุบน Linux ด้วย Shortwave ซึ่งเป็นรุ่นต่อจาก Gradio

วิธีฟังวิทยุบน Linux ด้วย Shortwave ซึ่งเป็นรุ่นต่อจาก Gradio

Gradio ถูกเก็บถาวรไปแล้ว แต่ Shortwave ซึ่งเป็นรุ่นต่อมายังคงให้บริการวิทยุออนไลน์บน Linux ติดตั้งด้วย Flatpak ค้นหาสถานี บันทึกสถานีโปรด และเริ่มสตรีมได้เลย

วิธีการติดตั้งธีม Paper GTK บน Linux

วิธีการติดตั้งธีม Paper GTK บน Linux

ติดตั้งธีม Paper GTK จากแหล่งเก็บซอฟต์แวร์ Linux ที่รองรับ เปิดใช้งานสำหรับแอป GTK ใน GNOME Tweaks และดูว่าธีมแบบเก่าสามารถเปลี่ยนแปลงอะไรได้บ้างและเปลี่ยนแปลงอะไรไม่ได้บ้าง

วิธีการค้นหาไวรัสบน Linux จากบรรทัดคำสั่ง

วิธีการค้นหาไวรัสบน Linux จากบรรทัดคำสั่ง

เรียนรู้วิธีการติดตั้ง ClamAV อัปเดตฐานข้อมูลไวรัส สแกนไฟล์และโฟลเดอร์ Linux แบบวนซ้ำ และตรวจสอบผลการตรวจพบโดยไม่ลบไฟล์โดยอัตโนมัติ

วิธีการติดตั้งและตั้งค่า Plex บน OpenMediaVault ด้วย Compose

วิธีการติดตั้งและตั้งค่า Plex บน OpenMediaVault ด้วย Compose

ปลั๊กอิน OpenMediaVault Plex รุ่นเก่าถูกเก็บถาวรแล้ว ติดตั้ง Plex บน OMV 8 โดยใช้ OMV-Extras, ปลั๊กอิน Compose, พื้นที่จัดเก็บข้อมูลถาวร และคอนเทนเนอร์อย่างเป็นทางการของ Plex