SSHを介して入力をクリップボードにコピーしますか?

SSHを介して入力をクリップボードにコピーしますか?

私のユースケースは次のとおりです。

  • 私は仕事のために他のコンピュータにSSHで接続することがよくありますが、例を書いてテキストを共有するためにサーバーのドキュメント/テキストをコピーしてローカルに実行されるエディタに貼り付ける必要があります。
  • 通常、テキストが十分に小さい場合は、ターミナルプログラム(現在のgnome-terminal)の出力をコピーして貼り付けます。
  • ただし、ドキュメント全体に関しては、私が選択できるオプションは非常に制限されています。文書をブロックごとにコピーしたり、scpローカルコンピュータにコピーしたりできます。

たとえば、リモートデバイスをローカルXサーバーのクリップボードにxclipコピーするプログラムを使用する方法はありますか?stdinいくつかの効果:

cat myconffile.conf | sed {...} | copy-over-ssh-to-local-clipboard

本当にいいですね。これを可能にできるものはありますか?

答え1

X 転送を使用して SSH を実行する場合、これは透過的です。リモートコマンド(含むxclip)はXサーバー(キーボードを含む)にアクセスできます。あなたとサーバーの両方にあることを確認してくださいForwardX11 yes(配布パネルによっては、これらのオプションはデフォルトでオンまたはオフになっている可能性があります)。~/.ssh/configX11Forwarding yessshd_config

<myconffile.conf sed {...} | xclip -i

以下を使用してローカルコンピュータにリモートディレクトリをマウントするなど、リモートファイルを操作するためのより便利な他の方法があります。SSHFS、またはEmacsでリモートファイルを開きます。徒歩旅行者。 SSHがありますヒューズSSHfsを設定してインストールしますmkdir ~/net/myserver; sshfs myserver:/ ~/net/myserver。 SSHfsは.sshを設定し、Emacsをインストールした場合はTrampをオンにするのと同じくらい簡単です/myserver:/path/to/file

答え2

xclipこれで作業が終わったstdinので、特別なものは必要ありません。

ssh remotehost xclip < myconf.conf

なぜ修正するのですかsedssh端末として使用されていない場合はデータに透過的で、次のパイプラインでよく使用されます。

tar cfz - somedir | ssh remotehost 'cd destdir; tar xfz -'`

答え3

ローカルコンピュータのOSXで実行する方法は次のとおりです。

ssh remotehost.com "<some/file.txt" | pbcopy

答え4

@d-raevと@william-casarinのソリューションと非常に似ていますが、異なるので、私に役立つ方法を共有しています。

注文する

ssh user@host "cat <myconffile.conf" | xclip -sel clip

説明する

これは、セキュリティトンネルを作成し、@orsshにログインし、toの内容を印刷してからローカルコンピュータにパイプするコマンドを実行して、コンテンツをローカルコンピュータのクリップボードに配置するために使用されます。userhostipcat<myconffile.confstdoutxclip -sel clip<myconffile.conf

実際のケースの使用

私はこのコマンド構造を使用してUbuntu 16.04と18.04でBashを使用してsshキーをgithubに貼り付けるなどの操作を実行します(コマンドの実行後に単純なctrl-Vまたは貼り付けの選択を許可します)。動作とオプションの詳細についてはman sshman catとを確認してください。man xclip

関連情報