Sự khác biệt giữa `ssh -Y` (chuyển tiếp X11 đáng tin cậy) và` ssh -X` (chuyển tiếp X11 không tin cậy) là gì?


114

Sự khác biệt giữa ssh -Y(chuyển tiếp X11 đáng tin cậy) và ssh -X(chuyển tiếp X11 không tin cậy) là gì? Theo như tôi đã hiểu, nó có liên quan đến bảo mật, nhưng tôi không nắm bắt được sự khác biệt và khi nào nên sử dụng.

Câu trả lời:


89

Cả hai tùy chọn đều có liên quan đến chuyển tiếp X11. Điều này có nghĩa là nếu bạn kích hoạt tính năng này, bạn có thể sử dụng ứng dụng khách đồ họa thông qua phiên SSH của mình (ví dụ: sử dụng Firefox hoặc một cái gì đó khác).

Nếu bạn sử dụng ssh -X remotemachinemáy từ xa được coi là một khách hàng không tin cậy. Vì vậy, máy khách cục bộ của bạn gửi một lệnh đến máy từ xa và nhận đầu ra đồ họa. Nếu lệnh của bạn vi phạm một số cài đặt bảo mật, bạn sẽ nhận được một lỗi thay thế.

Nhưng nếu bạn sử dụng ssh -Y remotemachinemáy từ xa được coi là một khách hàng đáng tin cậy. Tùy chọn cuối cùng này có thể mở các vấn đề bảo mật. Bởi vì các máy khách đồ họa (X11) khác có thể đánh hơi dữ liệu từ máy từ xa (tạo ảnh chụp màn hình, làm keylogging và những thứ khó chịu khác) và thậm chí có thể thay đổi những dữ liệu đó.

Nếu bạn muốn biết thêm về những điều đó, tôi khuyên bạn nên đọc trang quản trị Xsecurity hoặc thông số mở rộng X Security . Hơn nữa, bạn có thể kiểm tra các tùy chọn ForwardX11ForwardX11Trustedtrong của bạn /etc/ssh/ssh_config.


6
Trang chủ ssh sử dụng từ ngữ không may, gợi ý (ít nhất là với tôi) rằng -X không an toàn để sử dụng và -Y là tốt hơn. Vì vậy, cảm ơn bạn cho câu trả lời này.
Torsten Bronger

Vì vậy, với -Xcác khách hàng khác không thể đánh hơi hoặc thay đổi dữ liệu?
musiphil

6
Vậy tại sao người ta lại muốn sử dụng -Ythay vì -Xnói chung?
Wernight

Tôi có cùng một câu hỏi (tại sao nên sử dụng -Y) và trường hợp duy nhất mà tôi hiểu điều này có thể hữu ích là khi điều khiển bảo mật ở phía máy chủ bằng cách nào đó không được triển khai / không tương thích. Tôi cũng đã đọc rằng chuyển tiếp X11 nói chung là một công cụ mạnh mẽ và nguy hiểm nên được xử lý như vậy.
MakisH

5
Trả lời "Tại sao sử dụng -Y thay vì -X?" câu hỏi, -X giảm chuyển tiếp sau khi hết thời gian trong khi -Y không. Tuy nhiên, bạn có thể ghi đè cấu hình đó bằng ForwardX11Timeout cho tùy chọn -X.
Seb

23

Sử dụng không phải khi bạn không cần phải chạy chương trình X11 từ xa; sử dụng -Xkhi bạn làm; và sử dụng theo giả thuyết -Ynếu một chương trình X11 mà bạn quan tâm hoạt động tốt hơn với -Y so với -X. Nhưng hiện tại (Ubuntu 15.10), -X giống hệt với -Y, trừ khi bạn chỉnh sửa ssh_configđể nói ForwardX11Trusted no. -X ban đầu được dự định kích hoạt tiện ích mở rộng X Security của những năm 1990, nhưng nó đã cũ và không linh hoạt, và làm hỏng một số chương trình và do đó bị bỏ qua theo mặc định.

Cả ssh -Y-Xcho phép bạn chạy chương trình X11 trên máy từ xa, với các cửa sổ của nó xuất hiện trên màn hình X cục bộ. Vấn đề là chương trình được phép làm gì với các cửa sổ của các chương trình khác và cho chính máy chủ X.

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

Chuyển tiếp đáng tin cậy X11 được kích hoạt bởi -Y. Đây là hành vi lịch sử. Một chương trình có quyền truy cập vào màn hình, được tin cậy với quyền truy cập vào toàn bộ màn hình. Nó có thể chụp màn hình, keylog và đưa đầu vào vào tất cả các cửa sổ của các chương trình khác . Và nó có thể sử dụng tất cả các tiện ích mở rộng máy chủ X, bao gồm cả các tiện ích mở rộng như đồ họa được tăng tốc, đó là các mức phơi sáng bảo mật. Điều này tốt cho việc chạy trơn tru, nhưng xấu cho bảo mật. Bạn đang tin tưởng các chương trình từ xa sẽ an toàn như các chương trình địa phương của bạn.

Chuyển tiếp X11 không tin cậy cố gắng hạn chế các chương trình từ xa chỉ truy cập các cửa sổ của riêng chúng và chỉ sử dụng các phần của X tương đối an toàn. Nghe có vẻ tốt, nhưng hiện tại không hoạt động tốt trong thực tế.

Ý nghĩa của -Xhiện tại phụ thuộc vào cấu hình ssh của bạn.

Trên Ubuntu 14.04 LTS, trừ khi bạn chỉnh sửa ssh_config, không có sự khác biệt giữa -X-Y. "[B] gây ra quá nhiều chương trình hiện bị sập ở chế độ [không tin cậy]."

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

Nếu ForwardX11Trusted no, sau đó -Xcho phép chuyển tiếp không tin cậy . Mặt khác, -Xđược đối xử giống như -Y, tin tưởng rằng các chương trình từ xa có quyền truy cập hiển thị là thân thiện.


1

Các -Xtùy chọn cho phép chuyển tiếp 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.

Tùy chọn -Y, tương ứng với chỉ thị ForwardX11Trust trong ssh_config (5), thậm chí còn kém an toàn hơn vì, nó loại bỏ các điều khiển mở rộng X11 AN NINH.

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

Nó an toàn hơn để sử dụng -x

-x   Disables X11 forwarding.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.