อะไรคือความแตกต่างระหว่างssh -Y
(การส่งต่อ X11 ที่เชื่อถือได้) และssh -X
(การส่งต่อ X11 ที่ไม่น่าเชื่อถือ) เท่าที่ฉันเข้าใจมันมีเรื่องเกี่ยวกับความปลอดภัย แต่ฉันไม่เข้าใจความแตกต่างและเวลาที่จะใช้
อะไรคือความแตกต่างระหว่างssh -Y
(การส่งต่อ X11 ที่เชื่อถือได้) และssh -X
(การส่งต่อ X11 ที่ไม่น่าเชื่อถือ) เท่าที่ฉันเข้าใจมันมีเรื่องเกี่ยวกับความปลอดภัย แต่ฉันไม่เข้าใจความแตกต่างและเวลาที่จะใช้
คำตอบ:
ตัวเลือกทั้งสองมีส่วนเกี่ยวข้องกับการส่งต่อ X11 ซึ่งหมายความว่าหากคุณเปิดใช้งานสิ่งนี้คุณสามารถใช้ไคลเอ็นต์กราฟิกผ่านเซสชัน SSH ของคุณ (เช่นใช้ Firefox หรืออย่างอื่น)
หากคุณใช้ssh -X remotemachine
เครื่องระยะไกลจะถือว่าเป็นลูกค้าที่ไม่น่าเชื่อถือ ดังนั้นโลคัลไคลเอ็นต์ของคุณส่งคำสั่งไปยังเครื่องรีโมตและรับเอาต์พุตกราฟิก หากคำสั่งของคุณละเมิดการตั้งค่าความปลอดภัยคุณจะได้รับข้อผิดพลาดแทน
แต่ถ้าคุณใช้ssh -Y remotemachine
เครื่องระยะไกลถือว่าเป็นลูกค้าที่เชื่อถือได้ ตัวเลือกสุดท้ายนี้สามารถเปิดปัญหาด้านความปลอดภัย เนื่องจากไคลเอนต์แบบกราฟิก (X11) อื่น ๆ สามารถดักข้อมูลจากเครื่องระยะไกล (ทำภาพหน้าจอทำ keylogging และสิ่งที่น่ารังเกียจอื่น ๆ ) และเป็นไปได้ที่จะเปลี่ยนแปลงข้อมูลเหล่านั้น
หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับสิ่งเหล่านั้นผมขอแนะนำให้อ่านmanpage Xsecurityหรือสเปคขยาย X การรักษาความปลอดภัย นอกจากนี้คุณสามารถตรวจสอบตัวเลือกForwardX11
และในของคุณForwardX11Trusted
/etc/ssh/ssh_config
-X
เป็นไปไม่ได้ที่ลูกค้ารายอื่นจะดมกลิ่นหรือแก้ไขข้อมูล?
-Y
แทน-X
โดยทั่วไป
-Y
) และกรณีเดียวที่ฉันเข้าใจว่าอาจเป็นประโยชน์คือเมื่อการควบคุมความปลอดภัยในฝั่งเซิร์ฟเวอร์ไม่ได้ดำเนินการ / ไม่เข้ากัน ฉันได้อ่านแล้วว่าการส่งต่อ X11 เป็นเครื่องมือที่ทรงพลังและอันตรายที่ควรได้รับการปฏิบัติเช่นนี้
ใช้ไม่ได้เมื่อคุณไม่จำเป็นต้องเรียกใช้โปรแกรม 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
โดยเชื่อว่าโปรแกรมระยะไกลที่มีสิทธิ์เข้าถึงการแสดงผลนั้นเป็นมิตร
-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.