LoginSignup
20
14

More than 1 year has passed since last update.

MacからUbuntuにSSH接続し,tmux上でマウスによるコピーアンドペーストを行う

Last updated at Posted at 2014-09-15
  • 追記: 9/28

現在,Webアプリを作成する際に,MacからLinuxサーバへログインして作業しています.
tmuxには,デフォルトでコピーモードが用意されているようですが,どうにも使いづらかったので,マウスを使ってコピーアンドペーストする方法を探していました.
リモートログインせずに同様のことを行う記事は数多くあったのですが,今回の状況はWeb検索でもなかなか解決しなかったので,ログを載せておきます.

やりたかったこと

Mac PC (OS X Marvericks)から,Linuxサーバ(Ubuntu 13.10)にSSHを用いたリモートログインを行い,接続先のLinuxサーバでtmuxを立ち上げた状況を仮定します.

SSH接続には公開鍵認証を使っているとします.

このtmux上でマウスによるコピーアンドペーストを行いたいです.

以下,Mac PCを「クライアント」,Linuxサーバを「サーバ」と呼ぶことにします.

手順

クライアントの設定

tmux上のコピペをうまく設定する方法

こちらの,"Macの場合"の設定を参考にする.
.zshrcは上記の記事の,「追記(2013-07-08)」の設定を参照した.

lethe2211@client$ brew install reattach-to-user-namespace
.tmux.conf
set-window-option -g mode-mouse on
.zshrc
alias tmux-copy='tmux save-buffer - | pbcopy'

if [ -n "$TMUX" ]; then
  alias pbcopy="reattach-to-user-namespace pbcopy"
fi

こちらの記事では,OSによって.zshrcを使い分けているが,今回はあまり気にしない方向で.
設定ができたら,クライアント上のtmuxでコピペができているか確認する.

lethe2211@client$ tmux
# マウスで適当に領域を指定する
lethe2211@client$ tmux-copy
lethe2211@client$ tmux save-buffer - # またはC-vを押下

これでコピーした領域の文字が標準出力に出てくればOK.

.ssh/configの設定

クライアント・サーバ間でクリップボードを共有するためには,X11プロトコルの転送が必要らしい(よくわからない).

ubuntu - Using clipboard through SSH in vim - Super User

こちらを参考に,クライアントの~/.ssh/configを設定する.

~/.ssh/config
Host {myserver}
	HostName {myserver}
	User {myusername}
	IdentityFile {/path/to/your/private/key}
	ForwardX11 yes
	ForwardX11Trusted yes

重要なのは,"ForwardX11"と,"ForwardX11Trusted"を"yes"にしておくこと.
{}内は各自読み替えて下さい.

サーバの設定

まず,サーバ側がX11転送を許可しているかを確認する.

X11 Forwarding - なんなんなん行く?

こちらを参考にする.

lethe2211@server$ cat /etc/ssh/sshd_config | grep X11

これで,

X11Forwarding yes

みたいな記述が見つかればOK.

あとは,

端末からクリップボードへのコピペする

と,

tmux上のコピペをうまく設定する方法
の"Ubuntuの場合"

を参考に,xselのダウンロードとaliasの設定を行う.

lethe2211@server$ sudo apt-get install xsel
.tmux.conf
set-window-option -g mode-mouse on
.zshrc
alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'
alias tmux-copy='tmux save-buffer - | pbcopy'

これでできたはず.

Mac上での確認と同じようにして,問題がなければOK.
"tmux-copy"の初回実行の際に,XQuartzのインストールを求められるかもしれない.
その際は,素直にインストールする.


領域の選択後に,いちいち"tmux-copy"を入力するのが少し面倒ですが,かなりマシになったかと思います.

追記: 9/28

指摘をいただき,「option + 範囲選択」で,ここでやりたかったことはできることがわかりました…

今までの苦労は何だったのか…

20
14
1

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
20
14