224 votes

Obtenir des Éléments sur le presse-papiers Local à partir d'une Distance de Session SSH

Limite ServerFault question, mais je suis de programmation de certains scripts shell, donc j'essaye ici d'abord :)

La plupart des *nixes une commande qui vous permettra de tuyau/rediriger la sortie vers le presse-papiers local/table de montage, et de récupérer de même. Sur OS X, ces commandes sont

pbcopy, pbpaste

Est-il de toute façon à reproduire cette fonctionnalité alors que SSHed dans un autre serveur? Qui est,

  1. Je suis l'aide de l'Ordinateur A.
  2. - Je ouvrir une fenêtre de terminal
  3. Je SSH à l'Ordinateur B
  4. J'ai exécuter une commande sur l'Ordinateur B
  5. La sortie de l'Ordinateur B est redirigée ou copie automatiquement à l'Ordinateur d'Un presse-papiers.

Et oui, je sais que je pourrais juste (frisson) utiliser ma souris pour sélectionner le texte à partir de la commande, mais je suis tellement habitué au flux de travail du bêchage sortie directement dans le presse-papiers que je veux le même pour mon sessions à distance.

Le Code est utile, mais en général les approches sont aussi bien appréciés.

166voto

Ma façon préférée est ssh [remote-machine] "cat log.txt" | xclip -selection c. Ceci est particulièrement utile lorsque vous ne voulez pas (ou ne pouvez pas) ssh de distance locale.

Edit: sur Cygwin ssh [remote-machine] "cat log.txt" > /dev/clipboard.

105voto

rhileighalmgren Points 326

Je suis la résurrection de ce fil parce que j'ai été à la recherche pour le même genre de solution, et j'en ai trouvé un qui fonctionne pour moi. C'est une modification mineure à une suggestion de OSX Quotidien.

Dans mon cas, j'utilise le Terminal sur mon local OSX machine de se connecter à un serveur linux via SSH. Comme l'OP, je voulais être en mesure de transférer de petits morceaux de texte à partir de la borne de mon presse-papiers local, en utilisant uniquement le clavier.

L'essence de la solution:

commandThatMakesOutput | ssh desktop pbcopy

Lorsque vous exécutez dans une session ssh sur un ordinateur distant, cette commande prend la sortie de commandThatMakesOutput (par exemple, ls, pwd) et les tuyaux à la sortie vers le presse-papiers de l'ordinateur local (le nom ou l'adresse IP de "bureau"). En d'autres termes, il utilise imbriqués ssh: vous êtes connecté à l'ordinateur distant via une session ssh, vous exécutez la commande, et l'ordinateur distant se connecte à votre ordinateur de bureau via une autre session ssh et met le texte dans le presse-papiers.

Il exige de votre bureau pour être configuré comme un serveur ssh (dont je vous laisse et google). Il est beaucoup plus facile si vous avez mis en place des clés ssh pour faciliter rapide ssh utilisation, de préférence à l'aide d'une session par session mot de passe, ou quels que soient vos besoins en matière de sécurité l'exigent.

D'autres exemples:

ls  | ssh desktopIpAddress pbcopy
pwd |  ssh desktopIpAddress pbcopy

Pour plus de commodité, j'ai créé un fichier bash pour raccourcir le texte requis après la pipe:

#!/bin/bash
ssh desktop pbcopy

Dans mon cas, je suis en utilisant un spécialement nommé clés

Je l'ai enregistré avec le nom de fichier cb (mon mnémonique (presse-papiers). Placez le script quelque part dans votre path, de le rendre exécutable et le tour est joué:

ls | cb

33voto

TrinitronX Points 1868

Trouvé une excellente solution qui ne nécessite pas une inversion de la connexion ssh!

Vous pouvez utiliser xclip sur l'hôte distant avec ssh X11 forwarding & XQuartz sur le système OSX.

Pour cela:

  1. Installer XQuartz (je l'ai fait avec soliste + pivotal_workstation::xquartz recette, mais vous n'avez pas d')
  2. Exécuter XQuartz.app
  3. Ouvrir XQuartz Préférences (kb_command+,)
  4. Assurez-vous que "Activer la Synchronisation" et "mise à Jour de la table de montage lorsque le presse-papiers changements" sont cochées XQuartz Preferences window example
  5. ssh -X remote-host "echo 'hello from remote-host' | xclip -selection clipboard"

9voto

ephemient Points 87003

Il existe plusieurs outils d'accès à X11 sélections, y compris xclip et XSel. Notez que X11 traditionnellement, les sélections multiples, et la plupart des programmes ont une certaine compréhension à la fois le presse-papiers et la sélection principale (qui ne sont pas les mêmes). Emacs peut travailler avec la sélection secondaire, mais c'est rare, et personne ne sait vraiment quoi faire avec les buffers de coupe...

$ xclip -aider
Utilisation: xclip [OPTION] [FICHIER]...
Accéder à un serveur X de sélection pour la lecture ou l'écriture.

 -i, -lire le texte en X sélection de l'entrée standard ou des fichiers
(par défaut)
 -o, -out imprime la sélection standard (généralement pour
 la tuyauterie à un fichier ou un programme)
 -l, -des boucles de sélection des demandes à attendre avant la sortie
 -d, affichage d'affichage X de se connecter (par exemple localhost:0")
 -h, -aider à l'utilisation de l'information
 -sélection de la sélection d'accès ("primaire", "secondaire", "presse-papiers" ou "tampon")
 -noutf8 ne pas traiter le texte comme utf-8, utiliser de vieux unicode
 -version informations de version
 -silencieux que les erreurs d', exécuter en arrière-plan (par défaut)
 -silence de fonctionnement en avant-plan, montrer ce qui se passe
 -verbose commentaire

Rapport de bugs <astrand@lysator.liu.se>
$ xsel -aider
Utilisation: xsel [options]
Manipuler la sélection.

Par défaut, la sélection actuelle est de sortie et de ne pas modifiée si les deux
l'entrée standard et la sortie standard, ce sont des terminaux (ats). Sinon,
la sélection actuelle est de sortie si la sortie standard n'est pas un terminal
(ats), et la sélection est définie à partir de l'entrée standard si l'entrée standard
n'est pas un terminal (tty). Si aucune entrée ou sortie d'options sont donnés ensuite
le programme comporte uniquement dans le mode de.

Si à la fois d'entrée et de sortie, c'est que la sélection précédente est
de sortie avant d'être remplacé par le contenu de l'entrée standard.

Les options de saisie
 -a, --append Ajouter de la norme d'entrée à la sélection
 -f, --suivre les Ajouter à la sélection de l'entrée standard pousse
 -i, --entrée de Lire l'entrée standard dans la sélection

Options de sortie
 -o, --output Écrire la sélection sur la sortie standard

Les options de l'Action
 -c, --clear Effacer la sélection
 -d, --delete Demande que la sélection soit effacé et que
 l'application posséder supprimer son contenu

Les options de sélection
 -p, --primaires Fonctionnent sur la sélection PRINCIPALE (par défaut)
 -s, --secondaire Fonctionnent sur la sélection SECONDAIRE
 -b, --presse-papiers Fonctionner sur la sélection de presse-papiers

 -k, --garder de Ne pas modifier les choix, mais de faire de la PRIMAIRE
 et SECONDAIRE sélections persistent même après la
 les programmes qu'ils ont été sélectionnés en sortie.
 -x, --change le PRIMAIRE et le SECONDAIRE sélections

X options
 --affichage displayname
 Spécifier le type de connexion pour le serveur X
 -t ms, --selectionTimeout ms
 Spécifiez le délai d'attente en millisecondes à l'intérieur de laquelle le
 la sélection doit être récupéré. Une valeur de 0 (zéro)
 spécifie pas de délai d'attente (par défaut)

Diverses options
 -l, --logfile Spécifier le fichier journal des erreurs lorsqu'ils sont détachés.
 -n, --nodetach Ne se détachent pas du terminal de contrôle. Sans
 cette option, xsel se divise pour devenir un arrière-plan
 processus d'entrée, d'échange et de garder les modes.

 -h, --help Afficher l'aide et quitter
 -v, --verbose affiche les messages d'information
 --version Sortie des informations de version et de sortie

Merci de rapporter les bugs <conrad@vergenet.net>.

En bref, vous devez essayer d' xclip -i/xclip -o ou xclip -i -sel clip/xclip -o -sel clip ou xsel -i/xsel -o ou xsel -i -b/xsel -o -b, selon ce que vous voulez.

1voto

fpmurphy1 Points 851

Si Tooltalk est disponible pour les deux systèmes, vous pouvez écrire une simple Tooltalk demande de faire ce que vous voulez faire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X