J'ai une machine sous Ubuntu à laquelle je suis SSH depuis ma machine Fedora 14. Je souhaite renvoyer X de la machine Ubuntu à Fedora pour pouvoir exécuter des programmes graphiques à distance. Les deux machines sont sur un réseau local.
Je sais que l' -X
option active le transfert X11 dans SSH, mais j'ai l'impression de manquer certaines étapes.
Quelles sont les étapes requises pour transférer X d'une machine Ubuntu vers Fedora via SSH?
ssh
xorg
xforwarding
M. Shickadance
la source
la source
Réponses:
Le transfert X11 doit être activé à la fois du côté client et du côté serveur.
Du côté client , l'
-X
option (majuscule X)ssh
permet d' activer le transfert X11 et vous pouvez en faire la valeur par défaut (pour toutes les connexions ou pour une connexion spécifique) avecForwardX11 yes
in~/.ssh/config
.Côté serveur ,
X11Forwarding yes
doit être spécifié dans/etc/ssh/sshd_config
. Notez que la valeur par défaut est aucun transfert (certaines distributions l'activent par défaut/etc/ssh/sshd_config
) et que l'utilisateur ne peut pas remplacer ce paramètre.Le
xauth
programme doit être installé côté serveur. S'il existe des programmes X11, il est fort probable qu'ils lexauth
seront. Dans le cas peu probable où il axauth
été installé dans un emplacement non standard, il peut être appelé via~/.ssh/rc
(sur le serveur!).Notez qu'il n'est pas nécessaire de définir des variables d'environnement sur le serveur.
DISPLAY
etXAUTHORITY
sera automatiquement mis à leurs valeurs appropriées. Si vous exécutez ssh etDISPLAY
n’est pas défini, cela signifie que ssh ne transfère pas la connexion X11.Pour confirmer que ssh est en train de transférer X11, recherchez une ligne
Requesting X11 forwarding
dans lassh -v -X
sortie. Notez que le serveur ne répondra dans aucun cas, une précaution de sécurité consistant à cacher des détails à des attaquants potentiels.la source
xhost +
.xhost
vient d'une époque plus douce quand une machine connectée au réseau signifiait que vous étiez digne de confiance.xhost +
signifie que quiconque peut usurper votre adresse IP peut prendre le contrôle de votre session sur le serveur X.ssh -X
mettra en place toutes les autorisations requises. Si le transfert X11 est désactivé dans la configuration du serveur, contactez votre administrateur. Si cela ne fonctionne pas, voir Redirection de X11 sur SSH si la configuration du serveur ne le permet pas .~/.ssh/config
et/etc/ssh/sshd_config
au même endroit. Je ne pouvais pas dire s’il s’agissait de fichiers différents ou s’il s’agissait simplement d’un changement de nomenclature..Xauthority
fichier. Si vous utilisez Red Hat ou un autre système avec SELinux, vérifiez le contexte SELinux, voir unix.stackexchange.com/questions/36540/…ssh -X
coursexterm &
pour obtenir un terminal graphique comme le test ultime pour voir si elle fonctionne.Pour que la redirection X11 fonctionne sur ssh, vous devez disposer de 3 éléments.
Si vous avez les n ° 1 et n ° 2 en place mais qu'il vous manque la n ° 3, vous obtiendrez une variable d'environnement DISPLAY vide.
De la soupe aux noix, voici comment faire fonctionner la transmission X11.
Sur votre serveur, assurez-vous que / etc / ssh / sshd_config contient:
Vous devrez peut-être SIGHUP pour qu'il prenne ces modifications en compte.
Sur votre serveur, assurez-vous que xauth est installé.
Si xauth n'est pas installé, vous rencontrerez le problème de "variable d'environnement DISPLAY vide".
Sur votre client, connectez-vous à votre serveur. Assurez-vous de dire à ssh d'autoriser le transfert X11. je préfère
mais vous pouvez aimer
ou vous pouvez le configurer dans votre ~ / .ssh / config.
Je rencontrais cette variable d’environnement DISPLAY vide plus tôt aujourd’hui lorsque ssh s’est inséré dans un nouveau serveur que je n’administre pas. Repérer la partie manquante de xauth était un peu amusant. Voici ce que j'ai fait et ce que vous pouvez faire aussi.
Sur mon poste de travail local, où je suis administrateur, j'ai vérifié que / etc / ssh / sshd_config était configuré pour transférer X11. Quand je ssh -X retourne à localhost, mon DISPLAY est configuré correctement.
Forcer DISPLAY à se désinstaller n'était pas trop difficile. J'avais juste besoin de regarder ce que sshd et ssh faisaient pour le configurer correctement. Voici le résultat complet de tout ce que j'ai fait en cours de route.
Au lieu d'utiliser sudo pour forcer la copie de mes fichiers ssh_host_ {dsa, rsa} _key, j'ai utilisé ssh-keygen pour en créer des factices.
Rincez et répétez avec -t dsa:
Éditez ~ / dummy-sshd / sshd_config pour qu'il pointe vers les nouveaux fichiers de clé ssh_host appropriés.
Lancez sshd sur un nouveau port en mode sans détachement:
Oups, mieux vaut corriger ce chemin:
Ouvrez un nouveau terminal et ssh dans localhost sur le port 50505:
Regardez les trois dernières lignes. J'avais fortuitement le jeu DISPLAY et ces deux jolies lignes de / usr / bin / xauth.
À partir de là, c’était un jeu d’enfant de déplacer mon / usr / bin / xauth vers /usr/bin/xauth.old, de se déconnecter de ssh et d’arrêter sshd, puis de relancer sshd et ssh dans localhost.
Lorsque / usr / bin / xauth était parti, je ne voyais pas DISPLAY reflété dans mon environnement.
Il n'y a rien de brillant ici. La plupart du temps, j'ai eu la chance de choisir une approche sensée pour essayer de reproduire cela sur ma machine locale.
la source
export DISPLAY=:10
. Je n'ai jamais deviné ce nombre d'affichage.Sois sûr que:
xauth
installé sur le serveur (voir:xauth info
/xauth list
).Sur le serveur, votre
/etc/ssh/sshd_config
fichier contient ces lignes:Du côté client, votre
~/.ssh/config
fichier contient les lignes suivantes:Du côté client, vous avez installé le serveur X (par exemple, macOS: XQuartz; Windows: Xming).
Ensuite, pour faire le transfert X11 avec SSH, vous devez ajouter
-X
à votressh
commande, par exemplepuis vérifiez que votre
DISPLAY
n'est pas vide par:S'il est, puis d' avoir le paramètre bavard pour ssh (
-v
), vérifier les mises en garde, par exempleSi vous avez un X11 non fiable comme indiqué ci-dessus, essayez
-Y
plutôt flag (si vous faites confiance à l'hôte):Voir: Que signifie «Avertissement: la configuration du transfert X11 non fiable a échoué: les données de clé xauth non générées» signifient-elles lorsque ssh passe avec -X?
Si vous avez un avertissement: pas de données xauth , vous pouvez essayer de générer un nouveau
.Xauthority
fichier, par exempleVoir: Créer / reconstruire un nouveau fichier .Xauthority
Si vous avez des avertissements différents de ceux mentionnés ci-dessus, suivez les autres indices.
la source
Le correctif est d'ajouter cette ligne à votre
/etc/ssh/sshd_config
:https://joshua.hoblitt.com/rtfm/2013/04/how_to_fix_x11_forwarding_request_failed_on_channel_0/
la source
Laisser Ubuntu bash sur Windows 10 s'exécuter
ssh -X
pour obtenir un environnement graphique sur un serveur distantInstallez tout ce qui suit. Sur la fenêtre, installez
Xming
. Sur Ubuntu bash, utilisezsudo apt install
pour installerssh xauth xorg
.Allez dans le dossier contient le
ssh_config
fichier, le mien est/etc/ssh
.Modifier en
ssh_config
tant qu'administrateur (USEsudo
). A l' intérieurssh_config
, supprimer la valeur de hachage#
dans les lignesForwardAgent
,ForwardX11
,ForwardX11Trusted
, et définir les arguments correspondantsyes
.Dans le
ssh_config
fichier, supprimez le hachage#
avant avantPort 22
etProtocol 2
ajoutez également une nouvelle ligne à la fin du fichier pour indiquer l'emplacement du fichier xauthXauthLocaion /usr/bin/xauth
. Rappelez-vous d'écrire votre propre chemin d'accès au fichier xauth.Maintenant que nous avons terminé l'édition du
ssh_config
fichier, enregistrez-le lorsque nous quittons l'éditeur. Maintenant, allez dans le dossier~
ou$HOME
, ajoutezexport DISPLAY=localhost:0
à votre.bashrc
fichier et enregistrez-le.On a presque fini. Redémarrez votre shell bash, ouvrez votre
Xming
programme et utilisez-lessh -X yourusername@yourhost
. Ensuite, profitez de l'environnement graphique.Le problème concerne également le sous-système Ubuntu sous Windows et le lien se trouve à l'adresse suivante:
https://gist.github.com/DestinyOne/f236f71b9cdecd349507dfe90ebae776
la source
Ajouter
X11UseLocalhost no
à/etc/ssh/sshd_config
et redémarrer le serveur SSH.Si vous n'obtenez pas de DISPLAY, vérifiez si xauth est installé correctement, puis réessayez.
RHE / CEntos n'a pas ce problème, c'est une affaire Ubuntu!
la source
Pour moi, le problème était dans l' option de montage nodev pour le système de fichiers / tmp. X11 a besoin d’un fichier spécial pour y être créé.
Vérifiez donc quelles sont les options de montage pour le système de fichiers / tmp si vous utilisez une partition ou un disque séparé pour cela.
la source
Pour ajouter aux excellentes réponses précédentes (configurer
~/.ssh/config
et vérifier si laDISPLAY
variable d’environnement est définie sur le client, configurer/etc/ssh/sshd_config
et installerxauth
sur le serveur), assurez-vous également qu’ilxterm
est installé sur le client, par exemplela source
xauth
peut être verrouillé.En utilisant
Sur la machine dans laquelle j'essayais de
ssh
briser le verrouxauth
. Se déconnecter de lassh
session après l’émission,xauth -b
puis se reconnecter, m’a finalement permis de réussirecho $DISPLAY
. Essayez certainement ceci avant de recréer.Xauthority
la source
X11Forwarding
doit être défini sur le serveur SSH (dans votre cas, la boîte Ubuntu)sshd_config
et vous devez autoriser le transfert de X11 pour le client SSH (votre boîte Fedora) en passant l'-X
option ou en modifiant lessh_config
fichier pour ajouter laForwardX11
valeur par défaut.la source
xauth
installé sur la machine distante, sinon le matériel autorité x ne fonctionnera pas.DISPLAY
?$DISPLAY
siX11Forwarding
est activé etxauth
est présent sur le système client.export DISPLAY=:10.0
mais pas autrement. Sinon, il se plaint qu'il ne peut pas trouver:0
. Peut-être que quelque chose d'autre est nécessaire pour que cela se produise automatiquement?