How to send data to local clipboard from a remote SSH session

前端 未结 11 1366
别那么骄傲
别那么骄傲 2020-12-07 07:29

Borderline ServerFault question, but I\'m programming some shell scripts, so I\'m trying here first :)

Most *nixes have a command that will let you pipe/red

11条回答
  •  春和景丽
    2020-12-07 07:37

    I'm resurrecting this thread because I've been looking for the same kind of solution, and I've found one that works for me. It's a minor modification to a suggestion from OSX Daily.

    In my case, I use Terminal on my local OSX machine to connect to a linux server via SSH. Like the OP, I wanted to be able to transfer small bits of text from terminal to my local clipboard, using only the keyboard.

    The essence of the solution:

    commandThatMakesOutput | ssh desktop pbcopy
    

    When run in an ssh session to a remote computer, this command takes the output of commandThatMakesOutput (e.g. ls, pwd) and pipes the output to the clipboard of the local computer (the name or IP of "desktop"). In other words, it uses nested ssh: you're connected to the remote computer via one ssh session, you execute the command there, and the remote computer connects to your desktop via a different ssh session and puts the text to your clipboard.

    It requires your desktop to be configured as an ssh server (which I leave to you and google). It's much easier if you've set up ssh keys to facilitate fast ssh usage, preferably using a per-session passphrase, or whatever your security needs require.

    Other examples:

    ls  | ssh desktopIpAddress pbcopy
    pwd |  ssh desktopIpAddress pbcopy
    

    For convenience, I've created a bash file to shorten the text required after the pipe:

    #!/bin/bash
    ssh desktop pbcopy
    

    In my case, i'm using a specially named key

    I saved it with the file name cb (my mnemonic (ClipBoard). Put the script somewhere in your path, make it executable and voila:

    ls | cb
    

提交回复
热议问题