同じ種類の解決策を探していて、自分に合った解決策を見つけたので、このスレッドを復活させます。これは、OSX Daily からの提案を少し変更したものです。
私の場合、ローカルの OSX マシンでターミナルを使用して、SSH 経由で Linux サーバーに接続しています。 OP のように、キーボードだけを使用して、端末からローカルのクリップボードに小さなテキストを転送できるようにしたいと考えていました。
ソリューションの本質:
commandThatMakesOutput | ssh desktop pbcopy
リモート コンピューターへの ssh セッションで実行すると、このコマンドは commandThatMakesOutput の出力を受け取ります (例:ls、pwd) を実行し、出力をローカル コンピューターのクリップボード (「デスクトップ」の名前または IP) にパイプします。つまり、ネストされた ssh を使用します。1 つの ssh セッションを介してリモート コンピューターに接続し、そこでコマンドを実行すると、リモート コンピューターは別の ssh セッションを介してデスクトップに接続し、テキストをクリップボードに書き込みます。
デスクトップをsshサーバーとして構成する必要があります(これはあなたとグーグルに任せます)。できればセッションごとのパスフレーズを使用するか、セキュリティのニーズに応じて、高速な ssh の使用を促進するために ssh キーを設定すると、はるかに簡単になります。
その他の例:
ls | ssh desktopIpAddress pbcopy
pwd | ssh desktopIpAddress pbcopy
便宜上、パイプの後に必要なテキストを短くするための bash ファイルを作成しました:
#!/bin/bash
ssh desktop pbcopy
私の場合、特別な名前のキーを使用しています
ファイル名 cb で保存しました (私のニーモニック (ClipBoard)。スクリプトをパスのどこかに置き、実行可能にすると出来上がり:
ls | cb
ssh サーバーのリバース トンネル ポート
既存のすべてのソリューションには次のいずれかが必要です:
- クライアントの X11 (ある場合は
xclip
サーバー上でうまく動作します)または - クライアントとサーバーが同じネットワーク内にあること (職場で自宅のコンピューターにアクセスしようとしている場合は、この限りではありません)。
別の方法もありますが、コンピューターへの ssh の方法を変更する必要があります。
私はこれを使い始めましたが、見た目ほど威圧的ではないので、試してみてください。
クライアント (ssh セッションの起動)
ssh [email protected] -R 2000:localhost:2000
(ヒント:これをキーバインドにすると、入力する必要がなくなります)
クライアント (別のタブ)
nc -l 2000 | pbcopy
注:pbcopy
がない場合 その後、ちょうど tee
サーバー (SSH セッション内)
cat some_useful_content.txt | nc localhost 2000
その他の注意事項
実際、ssh セッションの最中でもトンネルを開始する方法はありますが、見た目ほど悪くないものから人々を怖がらせたくありません。ただし、興味があれば後で詳細を追加します
リバース ssh 接続を必要としない優れたソリューションを見つけました!
リモートホストで xclip を、OSX システムで ssh X11 転送と XQuartz とともに使用できます。
これを設定するには:
<オール>,
)ssh -X remote-host "echo 'hello from remote-host' | xclip -selection clipboard"
私のお気に入りの方法は ssh [remote-machine] "cat log.txt" | xclip -selection c
です .これは、リモートからローカルに ssh したくない (またはできない) 場合に最も便利です。
編集:Cygwin ssh [remote-machine] "cat log.txt" > /dev/clipboard
で .
編集:nbren12 からの有益なコメント:
<ブロック引用>
ほとんどの場合、SSH ポート フォワーディングを使用してリバース ssh 接続をセットアップできます。 RemoteForward 127.0.0.1:2222 127.0.0.1:22
を追加するだけです ローカル .ssh/config
のサーバーのエントリに 、次に ssh -p 2222 127.0.0.1
を実行します これにより、接続がローカル マシンにリダイレクトされます。 – nbren12