อะไรคือความแตกต่างระหว่าง `ssh -Y` (การส่งต่อ X11 ที่เชื่อถือได้) และ` ssh -X` (การส่งต่อ X11 ที่ไม่น่าเชื่อถือ)


114

อะไรคือความแตกต่างระหว่างssh -Y(การส่งต่อ X11 ที่เชื่อถือได้) และssh -X(การส่งต่อ X11 ที่ไม่น่าเชื่อถือ) เท่าที่ฉันเข้าใจมันมีเรื่องเกี่ยวกับความปลอดภัย แต่ฉันไม่เข้าใจความแตกต่างและเวลาที่จะใช้

คำตอบ:


89

ตัวเลือกทั้งสองมีส่วนเกี่ยวข้องกับการส่งต่อ X11 ซึ่งหมายความว่าหากคุณเปิดใช้งานสิ่งนี้คุณสามารถใช้ไคลเอ็นต์กราฟิกผ่านเซสชัน SSH ของคุณ (เช่นใช้ Firefox หรืออย่างอื่น)

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

แต่ถ้าคุณใช้ssh -Y remotemachineเครื่องระยะไกลถือว่าเป็นลูกค้าที่เชื่อถือได้ ตัวเลือกสุดท้ายนี้สามารถเปิดปัญหาด้านความปลอดภัย เนื่องจากไคลเอนต์แบบกราฟิก (X11) อื่น ๆ สามารถดักข้อมูลจากเครื่องระยะไกล (ทำภาพหน้าจอทำ keylogging และสิ่งที่น่ารังเกียจอื่น ๆ ) และเป็นไปได้ที่จะเปลี่ยนแปลงข้อมูลเหล่านั้น

หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับสิ่งเหล่านั้นผมขอแนะนำให้อ่านmanpage Xsecurityหรือสเปคขยาย X การรักษาความปลอดภัย นอกจากนี้คุณสามารถตรวจสอบตัวเลือกForwardX11และในของคุณForwardX11Trusted/etc/ssh/ssh_config


6
mansh ssh ใช้ถ้อยคำที่โชคร้ายแนะนำ (อย่างน้อยสำหรับฉัน) ว่า -X ไม่ปลอดภัยในการใช้และ -Y ดีกว่า ขอบคุณมากสำหรับคำตอบนี้
Torsten Bronger

ดังนั้นจึง-Xเป็นไปไม่ได้ที่ลูกค้ารายอื่นจะดมกลิ่นหรือแก้ไขข้อมูล?
musiphil

6
เหตุใดจึงต้องการใช้-Yแทน-Xโดยทั่วไป
Wernight

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

5
ตอบ "ทำไมต้องใช้ -Y แทน -X?" คำถาม -X ลดการส่งต่อหลังจากหมดเวลาขณะที่ -Y ไม่ส่ง คุณสามารถลบล้างการกำหนดค่านั้นได้โดยใช้ ForwardX11Timeout สำหรับตัวเลือก -X
Seb

23

ใช้ไม่ได้เมื่อคุณไม่จำเป็นต้องเรียกใช้โปรแกรม X11 จากระยะไกล ใช้-Xเมื่อคุณทำ และสมมุติ-Yว่าใช้ถ้าโปรแกรม X11 ที่คุณสนใจทำงานได้ดีกว่าด้วย -Y มากกว่ากับ -X แต่ขณะนี้ (Ubuntu 15.10) -X เป็นเหมือน -Y ยกเว้นคุณจะแก้ไขที่จะบอกว่าssh_config ForwardX11Trusted no-X เดิมมีจุดประสงค์เพื่อเปิดใช้งานส่วนขยาย X Security ของปี 1990 แต่นั่นเก่าและไม่ยืดหยุ่นและจะขัดข้องบางโปรแกรมและอื่น ๆ จะถูกละเว้นโดยค่าเริ่มต้น

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

local$ ssh -X remote
remote$ xlogo
# Runs xlogo on remote, but the logo pops up on the local screen.

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

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

ความหมายของ-Xปัจจุบันขึ้นอยู่กับการกำหนดค่า SSH ของคุณ

บน Ubuntu 14.04 LTS ยกเว้นคุณจะแก้ไขของคุณssh_configมีความแตกต่างระหว่างไม่มีและ-X -Y"[B] เกิดความผิดพลาดในขณะนี้หลายโปรแกรมในโหมด [ไม่น่าเชื่อถือ]"

ubuntu1404$ man ssh
...
 -X      Enables X11 forwarding.  This can also be specified on a per-host
         basis in a configuration file.
         ...
         (Debian-specific: X11 forwarding is not subjected to X11 SECURITY
         extension restrictions by default, because too many programs cur‐
         rently crash in this mode.  Set the ForwardX11Trusted option to
         “no” to restore the upstream behavior.  This may change in
         future depending on client-side improvements.)

ubuntu1404$ grep ForwardX11Trusted /etc/ssh/ssh_config
#   ForwardX11Trusted yes

หากForwardX11Trusted noแล้ว-Xช่วยให้ไม่น่าเชื่อถือการส่งต่อ มิฉะนั้น-Xถือว่าเป็นเช่นเดียวกัน-Yโดยเชื่อว่าโปรแกรมระยะไกลที่มีสิทธิ์เข้าถึงการแสดงผลนั้นเป็นมิตร


1

-Xตัวเลือกที่ช่วยให้การส่ง X11:

-X   Enables X11 forwarding.  This can also be specified on a per-host
     basis in a configuration file.

     X11 forwarding should be enabled with caution.  Users with the
     ability to bypass file permissions on the remote host (for the
     user's X authorization database) can access the local X11 display
     through the forwarded connection.  An attacker may then be able
     to perform activities such as keystroke monitoring.

     For this reason, X11 forwarding is subjected to X11 SECURITY
     extension restrictions by default.  Please refer to the ssh -Y
     option and the ForwardX11Trusted directive in ssh_config(5) for
     more information.

ตัวเลือกที่-Yสอดคล้องกับคำสั่ง ForwardX11Trusted ใน ssh_config (5) นั้นมีความปลอดภัยน้อยกว่าเพราะมันจะลบการควบคุมส่วนขยาย X11 SECURITY

-Y      Enables trusted X11 forwarding.  Trusted X11 forwardings are not
        subjected to the X11 SECURITY extension controls.

มันปลอดภัยกว่าที่จะใช้ -x

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