コンテンツにスキップ

2026

My tmux セットアップ

最近は mosh+tmuxでiPadからいつでもどこでも再開できるのが楽しいです。

コマンド早見表

操作 コマンド
開始する tmux
新しいセッションを開始する tmux new -s name
セッションまたはペインを終了する (終了してターミナルに戻る) exit
特定のセッションを終了する tmux kill-session -t name
セッションを残したまま抜ける (デタッチ) Ctrl+b → d
セッションに戻る (アタッチ) tmux a
現在のセッションを一覧表示 tmux ls
セッション名をリネーム Ctrl+b → $
左右に分割 Ctrl+b → %
上下に分割 Ctrl+b → "
今のペインを閉じる Ctrl+b → x → y
ペイン間を移動 Ctrl+b → 矢印キー
ウィンドウ一覧を表示 Ctrl+b → w
次のウィンドウ Ctrl+b → n
前のウィンドウ Ctrl+b → p
新しいウィンドウ Ctrl+b → c
ウィンドウ番号を表示 Ctrl+b → q
tmux.conf リロード Ctrl+b → : → source-file ~/.tmux.conf
コマンドモードからセッションを終了 Ctrl+b → : → kill-session

tmux.conf

# =============================================================
# Gruvbox Dark テーマ
# =============================================================

# 256色 + True Color
set -g default-terminal "screen-256color"
set -ag terminal-overrides ",xterm-256color:RGB"

# ステータスバーを上に
set -g status-position top

# ステータス更新間隔(秒)
set -g status-interval 5

# =============================================================
# ステータスバー全体
# =============================================================
set -g status-style bg=#282828,fg=#ebdbb2
set -g status-left-length 40
set -g status-right-length 100

# 左:セッション名
set -g status-left "#[bg=#fabd2f,fg=#282828,bold]  #S #[bg=#282828,fg=#fabd2f]\ue0b0#[default] "

# 右:Gitブランチ + メモリ使用量 + 日時
set -g status-right "#[bg=#282828,fg=#83a598]\ue0b2#[bg=#83a598,fg=#282828]  #(git -C #{pane_current_path} branch --show-current 2>/dev/null || echo '—') #[bg=#83a598,fg=#b8bb26]\ue0b2#[bg=#b8bb26,fg=#282828]  #(free -h | awk '/Mem:/{print $3\"/\"$2}') #[bg=#b8bb26,fg=#fabd2f]\ue0b2#[bg=#fabd2f,fg=#282828]  %Y-%m-%d %H:%M "

# =============================================================
# ウィンドウタブ
# =============================================================
set -g window-status-separator ""
set -g window-status-format "#[bg=#3c3836,fg=#a89984] #I  #{?#{==:#{pane_current_command},nano},#W,#{b:pane_current_path}} #[default]"
set -g window-status-current-format "#[bg=#fe8019,fg=#282828,bold] #I  #{?#{==:#{pane_current_command},nano},#W,#{b:pane_current_path}} #[bg=#282828,fg=#fe8019]\ue0b0#[default]"

# =============================================================
# ペイン:アクティブを強調
# =============================================================

# ペインタイトルバーを有効化(アクティブ識別に使用)
set -g pane-border-status top
set -g pane-border-format "#[fg=#edc66d] #{pane_index} #{pane_current_command} #[fg=#a89984]#{b:pane_current_path} "
set -g pane-active-border-style "#[bg=#fabd2f,fg=#282828,bold] #{pane_index} #{pane_current_command} #[default]"

# 境界線の色:通常ペインは暗く、アクティブは黄色
set -g pane-border-style fg=#504945
set -g pane-active-border-style fg=#fabd2f,bold
set -g pane-border-lines heavy

# ペイン番号表示(Ctrl+b q)の色
set -g display-panes-colour gray
set -g display-panes-active-colour yellow
set -g display-panes-time 2000

# ペイン幅変更するキーセット (Alt)
bind-key -n M-Left resize-pane -L 2
bind-key -n M-Right resize-pane -R 2

Cloudflare Tunnelで自宅にSSH (2026-02版)

ポート開放なしで、インターネットから自宅サーバにSSHする方法をやってみた手順の記録。

前提

サーバー:Debian
クライアント:Windows 11

  1. Cloudflareアカウントとカスタムドメインを持っていること
  2. サーバーは既にSSHログインができるようになっている。かつ、パスワード認証を禁止し鍵認証のみにするなどセキュア化が済んでいること(参考:Debian 13 trixie setup (2025-09版) - skoshbyte

サーバーにcloudflaredをインストール

Downloads · Cloudflare One docs

sudo apt-get update && sudo apt-get install cloudflared

トンネルを作成する

Create a tunnel (dashboard) · Cloudflare One docs

  1. ブラウザでCloudflareダッシュボードにサインイン
  2. Network > Connectors > Cloudflare Tunnels 画面から Add a Tunnel をクリック
  3. 任意のトンネル名を入力してSave
  4. Saveするとインストールコマンドが表示されるので、そのままコピペして実行
    sudo cloudflared service install <ここに文字列が表示されている>
    

次のコマンドでトンネル情報が表示される

cloudflared tunnel list

  1. Next をクリックし、Published application タブで任意のサブドメイン名とサービスを指定して Save
    1. Hostname: sshgw.mydomain.com
    2. Service: SSH://localhost:22

クライアントにcloudflaredをインストール

クライアント側にも cloudflaredをインストールする。
Downloads · Cloudflare One docs

winget install --id Cloudflare.cloudflared --scope user

$env:localappdata\Microsoft\Winget\Packages\Cloudflare.... の中に cloudflared.exe ができているので、これを使いやすい場所に移動しておく (c:\toolsなど)

SSH鍵セットアップ

  1. クライアント側でキーを作成

    ssh-keygen -t ed25519 -C "任意のコメント" -f ./ed-tun
    

  2. 公開鍵の方をサーバーの authorized_keys に登録

  3. クライアント側の ~/.ssh/config を設定
Host tun
    Hostname sshgw.mydomain.com
    User myuser
    IdentityFile ~/.ssh/ed-tun
    ProxyCommand  C:\tools\cloudflared.exe access ssh --hostname %h
  1. ssh tun でSSHログインできる。

セキュリティについて

Access Policy機能を使用して追加の認証レイヤーも設定できるそうだが、サーバー側で鍵認証以外禁止にしていて、クライアント側の鍵にもパスフレーズを設定しているので、個人の限定的な利用としてはいったんこれでいいかなと。

あまりにも簡単で拍子抜けした一方で、これは企業側でブロックするの難しそうと思うなどした。

2026-01-16

Web散歩