Quelle est la différence entre ssh -Y
(transmission X11 de confiance) et ssh -X
(transmission X11 non fiable)? Autant que je sache, cela a quelque chose à voir avec la sécurité, mais je n'ai pas compris la différence et quand utiliser lequel.
Quelle est la différence entre ssh -Y
(transmission X11 de confiance) et ssh -X
(transmission X11 non fiable)? Autant que je sache, cela a quelque chose à voir avec la sécurité, mais je n'ai pas compris la différence et quand utiliser lequel.
Réponses:
Les deux options ont quelque chose à voir avec le transfert X11. Cela signifie que si vous l'activez, vous pouvez utiliser un client graphique via votre session SSH (par exemple, utilisez Firefox ou autre chose).
Si vous utilisez ssh -X remotemachine
la machine distante, elle est traitée comme un client non approuvé. Votre client local envoie donc une commande à la machine distante et reçoit la sortie graphique. Si votre commande enfreint certains paramètres de sécurité, vous recevrez une erreur.
Mais si vous utilisez ssh -Y remotemachine
la machine distante, elle est traitée comme un client de confiance. Cette dernière option peut ouvrir des problèmes de sécurité. Parce que d’autres clients graphiques (X11) peuvent renifler des données de la machine distante (faire des captures d’écran, enregistrer au clavier, etc.) et qu’il est même possible de modifier ces données.
Si vous souhaitez en savoir plus sur ces éléments, nous vous conseillons de lire la page de manuel Xsecurity ou la spécification d’extension X Security . En outre, vous pouvez vérifier les options ForwardX11
et ForwardX11Trusted
dans votre /etc/ssh/ssh_config
.
-X
est-il impossible pour d'autres clients de renifler ou de modifier des données?
-Y
au lieu de -X
en général?
-Y
) et le seul cas où j'ai compris que cela pourrait être utile est lorsque le contrôle de sécurité côté serveur n'est pas implémenté / n'est pas compatible. J'ai également lu que la transmission X11 est généralement un outil puissant et dangereux qui doit être traité comme tel.
N'utilisez ni quand vous n'avez pas besoin d'exécuter des programmes X11 à distance; utilisez -X
quand vous faites; et hypothétiquement utiliser -Y
si un programme X11 qui vous tient à coeur fonctionne mieux avec -Y qu'avec -X. Mais actuellement (Ubuntu 15.10), -X est identique à -Y, sauf si vous éditez ssh_config
pour le dire ForwardX11Trusted no
. -X était à l'origine destiné à permettre l'extension de sécurité X des années 1990, mais il est ancien et inflexible et bloque certains programmes. Il est donc ignoré par défaut.
Ssh -Y
et -X
vous permettent d’exécuter un programme X11 sur une machine distante, avec ses fenêtres apparaissant sur le moniteur X local. Le problème est de savoir ce que le programme est autorisé à faire sur les fenêtres d'autres programmes et sur le serveur X lui-même.
local$ ssh -X remote
remote$ xlogo
# Runs xlogo on remote, but the logo pops up on the local screen.
Le transfert X11 de confiance est activé par -Y
. C'est le comportement historique. Un programme ayant accès à l'écran est autorisé à accéder à tout l' écran. Il peut effectuer une capture d'écran, un keylog et une entrée dans toutes les fenêtres d' autres programmes. Et il peut utiliser toutes les extensions de serveur X, y compris celles telles que les graphiques accélérés, qui constituent un risque pour la sécurité. Ce qui est bon pour bien fonctionner, mais mauvais pour la sécurité. Vous faites confiance aux programmes distants pour être aussi sûr que vos programmes locaux.
Le transfert X11 non approuvé tente d'empêcher les programmes distants d'accéder uniquement à leurs propres fenêtres et d'utiliser uniquement les parties de X relativement sécurisées. Ce qui semble bien, mais actuellement ne fonctionne pas bien dans la pratique.
La signification -X
actuelle dépend de votre configuration SSH.
Sous Ubuntu 14.04 LTS, sauf si vous modifiez votre ssh_config
, il n'y a pas de différence entre -X
et -Y
. "[B] ecause est que trop de programmes bloquent actuellement en mode [non approuvé]."
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
Si ForwardX11Trusted no
, alors -X
active le transfert non approuvé . Sinon, -X
est traité de la même manière que -Y
, sachant que les programmes distants avec accès à l’affichage sont conviviaux.
L' -X
option active le transfert 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.
L'option -Y
, correspondant à la directive ForwardX11Trusted de ssh_config (5), est encore moins sécurisée car elle supprime les contrôles d'extension X11 SECURITY.
-Y Enables trusted X11 forwarding. Trusted X11 forwardings are not
subjected to the X11 SECURITY extension controls.
Il est plus sûr d'utiliser -x
-x Disables X11 forwarding.