Le presse - papiers est fourni par le serveur X . Peu importe que le serveur soit sans tête ou non, ce qui compte, c'est que votre session graphique locale soit disponible pour les programmes s'exécutant sur la machine distante. Grâce à la conception transparente du réseau de X, cela est possible.
Je suppose que vous vous connectez au serveur distant avec SSH à partir d'une machine exécutant Linux. Assurez-vous que le transfert X11 est activé à la fois dans la configuration client et dans la configuration serveur. Dans la configuration du client, vous devez avoir la ligne ForwardX11 yesde ~/.ssh/configl'avoir par défaut, ou passer l'option -Xà la sshcommande juste pour cette session. Dans la configuration du serveur, vous devez avoir la ligne X11Forwarding yesen /etc/ssh/sshd_config(il est présent par défaut sur Ubuntu).
Pour vérifier si le transfert X11 est activé, regardez la valeur de la DISPLAYvariable d'environnement: echo $DISPLAY. Vous devriez voir une valeur comme localhost:10(les applications exécutées sur la machine distante sont invitées à se connecter à un écran exécuté sur la même machine, mais cette connexion d'affichage est en fait transmise par SSH à votre écran côté client). Notez que s'il DISPLAYn'est pas défini, il est inutile de le définir manuellement: la variable d'environnement est toujours définie correctement si le transfert est en place. Si vous avez besoin pour diagnostiquer les problèmes de connexion SSH, passez l'option -vvvpour sshobtenir une trace détaillée de ce qui se passe.
Si vous vous connectez par un autre moyen, vous pouvez ou non être en mesure de réaliser le transfert X11. Si votre client exécute Windows, PuTTY prend en charge le transfert X11; vous devrez exécuter un serveur X sur la machine Windows telle que Xming .
+1 réponse brillante, mais comme je l'ai mentionné, ce serveur fonctionne sans x, la réponse Nykakins est donc plus pertinente.
Anake
@Anake, je crains que vous n'ayez mal lu ma réponse. Un affichage à distance n'implique aucun serveur X exécuté sur la machine distante. Vous devez avoir le xclipprogramme installé et les bibliothèques de support, mais cela n'implique pas l'installation d'un serveur X.
Gilles 'SO- arrête d'être méchant'
2
Je me demande simplement ... cette approche est-elle valable lors de la connexion d'un client OSX à un serveur Ubuntu sans tête?
ken
3
Ça ne marche pas pour moi. Je vais de mac -> serveur linux. X11Forwarding yesest dans le sshd_config sur le serveur et je suis passé -Xquand j'ai ssh'd sur le serveur. Error: Can't open display: (null)lecat ~/.ssh/id_rsa.pub | xclip -selection clipboard
chovy
1
ok je pensais que cela fonctionnerait car pbcopyfonctionne déjà sur mon mac localement. Comment démarrer un serveur x sur un mac et à quoi dois-je m'adresser $DISPLAY?
chovy
4
Bash lui-même n'a pas de presse-papiers. C'est une fonctionnalité X. xcliptest juste une interface de ligne de commande et comme vous le voyez, cela nécessite display. Un moyen de contourner le problème consiste simplement à utiliser un fichier temporaire:
xclip
programme installé et les bibliothèques de support, mais cela n'implique pas l'installation d'un serveur X.X11Forwarding yes
est dans le sshd_config sur le serveur et je suis passé-X
quand j'ai ssh'd sur le serveur.Error: Can't open display: (null)
lecat ~/.ssh/id_rsa.pub | xclip -selection clipboard
pbcopy
fonctionne déjà sur mon mac localement. Comment démarrer un serveur x sur un mac et à quoi dois-je m'adresser$DISPLAY
?Bash lui-même n'a pas de presse-papiers. C'est une fonctionnalité X.
xclipt
est juste une interface de ligne de commande et comme vous le voyez, cela nécessitedisplay
. Un moyen de contourner le problème consiste simplement à utiliser un fichier temporaire:la source