12
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ssh 経由で Mac のクリップボードにコピー

Posted at

ssh でログインしているサーバから Mac のクリップボードにコピーする。

Mac 側の設定

下記のファイルを ~/Library/LaunchAgents/pbcopy.plist に設置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>localhost.pbcopy</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/bin/pbcopy</string>
  </array>
  <key>inetdCompatibility</key>
  <dict>
    <key>Wait</key>
    <false/>
  </dict>
  <key>Sockets</key>
  <dict>
    <key>Listeners</key>
      <dict>
        <key>SockServiceName</key>
        <string>52224</string>
        <key>SockNodeName</key>
        <string>127.0.0.1</string>
      </dict>
  </dict>
</dict>
</plist>

launchctl load ~/Library/LaunchAgents/pbcopy.plist でサービス化しておく。
ポート 52224 でサービス待ち受け。サービス名は localhost.pbcopy
Mac 上で動作チェック

$ telnet localhost 52224
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
hello
^]
telnet> ^D
Connection closed.

で Mac のクリップボードに 「hello」が入っていれば OK。

ssh 経由で使用出来るようにするため ssh_config の設定を行っておく。

Host *
  RemoteForward 52224 localhost:52224

サーバ側の設定

サーバ側に下記のようなスクリプトをパスの通ったところに入れておくと幸せ。

#!/bin/sh
cat "$@" | nc localhost 52224

使用例

ssh ログイン先で、このように使用する。

$ pbcopy test.rb # Macのクリップボードに test.rb の中身がコピーされる
$ hostname | pbcopy # 同上
12
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?