私のユースケースは次のとおりです。
- 私は仕事のために他のコンピュータに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/config
X11Forwarding yes
sshd_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
なぜ修正するのですかsed
? ssh
端末として使用されていない場合はデータに透過的で、次のパイプラインでよく使用されます。
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の内容を印刷してからローカルコンピュータにパイプするコマンドを実行して、コンテンツをローカルコンピュータのクリップボードに配置するために使用されます。user
host
ip
cat
<myconffile.conf
stdout
xclip -sel clip
<myconffile.conf
実際のケースの使用
私はこのコマンド構造を使用してUbuntu 16.04と18.04でBashを使用してsshキーをgithubに貼り付けるなどの操作を実行します(コマンドの実行後に単純なctrl-Vまたは貼り付けの選択を許可します)。動作とオプションの詳細についてはman ssh
、man cat
とを確認してください。man xclip