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.
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:
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 remotemachine
má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 remotemachine
má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 ForwardX11
và ForwardX11Trusted
trong của bạn /etc/ssh/ssh_config
.
-X
các khách hàng khác không thể đánh hơi hoặc thay đổi dữ liệu?
-Y
thay vì -X
nói chung?
-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.
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 -X
khi bạn làm; và sử dụng theo giả thuyết -Y
nế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
và -X
cho 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 -X
hiệ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
và -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 đó -X
cho 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.
Các -X
tù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.