スマホからRaspberry PiにSSHしたら日本語が打てない問題を解決する方法を解説

  • URLをコピーしました!

※本ページはアフィリエイト広告を利用しています

Raspberry Pi をヘッドレス(モニターなし)で運用している方、スマホから SSH 接続したときに 日本語が入力できなくて困った ことはありませんか?

スマホの SSH クライアント(Termius、JuiceSSH など)はローマ字のキー入力しか送れないため、サーバー側に日本語変換の仕組みがないと日本語が打てません。Claude Code や Codex のようなターミナル上の AI ツールを使うとき、日本語で指示が出せないのは致命的です。

この記事では、Raspberry Pi に サーバーサイドの日本語入力環境(UIM + Mozc) を構築して解決する方法を紹介します。しかも、設定作業は コーディングエージェント(Claude Code や Codex)にプロンプトを渡すだけ で完了します。

目次

どういう仕組み?

通常の PC では、OS に搭載された IME(日本語入力メソッド)がかな漢字変換を行います。しかしスマホから SSH 接続した場合、スマホ側の IME はターミナルには効きません。送信されるのはローマ字のキーコードだけです。

そこで、Raspberry Pi 側に変換エンジンを置いて、サーバー上で日本語変換を処理 します。

スマホ(SSHクライアント)
  │  ローマ字キー入力を送信
  ▼
Raspberry Pi
  ├── uim-fep  ← ターミナル上の入力フロントエンド
  ├── UIM      ← 入力メソッドフレームワーク
  └── Mozc     ← かな漢字変換エンジン(Google日本語入力ベース)
  │
  ▼  変換済みの日本語テキスト
シェル / Claude Code / vim / その他アプリ

使い方はシンプルで、SSH ログイン後に jp と打てば日本語入力モードに入れます。Ctrl+Space で日英を切り替えて、ローマ字で打った文字がリアルタイムに漢字変換されます。

構成要素

ソフトウェア役割
MozcGoogle 日本語入力がベースのかな漢字変換エンジン。変換精度が高い
UIM入力メソッドフレームワーク。ターミナルや GUI アプリへの橋渡し
uim-fepターミナル専用のフロントエンド。SSH セッション内で動作する

セットアップ後にできること

  • jp コマンドで日本語入力可能なシェルを起動
  • jclaude コマンドで日本語入力付きの Claude Code を起動
  • Ctrl+Space または Ctrl+\ で日英切り替え
  • SSH ログイン時に使い方のヘルプが自動表示される
  • tmux 内でも正常に動作

コーディングエージェントに設定してもらおう

以下のプロンプトを Claude Code または Codex にそのまま貼り付けて実行してください。パッケージのインストールから設定ファイルの作成、動作確認まですべて自動で行われます。

前提条件

  • Raspberry Pi OS(Bookworm、64-bit)または Debian/Ubuntu 系の Linux
  • sudo 権限のあるユーザーでログインしていること
  • インターネット接続があること(パッケージのダウンロードに必要)

プロンプト(コピーして貼り付けてください)

# Raspberry Pi サーバーサイド日本語入力環境の構築

スマートフォンから SSH 接続した際にターミナル上で日本語入力を可能にする環境を構築してください。

## 構成

Raspberry Pi 側に変換エンジンを配置し、サーバーサイドで日本語変換を処理します。

- 変換エンジン: Mozc(Google 日本語入力ベース)
- 入力メソッドフレームワーク: UIM
- ターミナルフロントエンド: uim-fep

## 手順

### 1. パッケージインストール

以下のパッケージを apt でインストールしてください。

```
uim uim-fep uim-mozc mozc-server mozc-data uim-data
```

### 2. ロケール設定

日本語ロケール(ja_JP.UTF-8)を生成・設定してください。

- `sudo dpkg-reconfigure locales` で ja_JP.UTF-8 を生成
  (または `sudo sed -i 's/# ja_JP.UTF-8/ja_JP.UTF-8/' /etc/locale.gen && sudo locale-gen`)
- `~/.profile` の末尾に以下を追加:

```bash
# Japanese locale setting for uim-fep
export LANG=ja_JP.UTF-8
```

### 3. UIM 環境変数(~/.bashrc に追記)

```bash
# ===========================================
# uim-fep: サーバーサイド日本語入力環境
# ===========================================

# uim環境変数
export GTK_IM_MODULE=uim
export QT_IM_MODULE=uim
export XMODIFIERS=@im=uim

# 日本語入力エイリアス
alias jp='uim-fep'
alias jclaude='uim-fep -e claude'

# SSH接続時に日本語入力のヘルプを表示(インタラクティブシェル + SSH接続時のみ)
if [ -n "$SSH_CONNECTION" ] && [ -z "$TMUX" ] && [ -z "$UIM_FEP" ]; then
    echo ""
    echo "  [日本語入力] uim-fep が利用可能です"
    echo "    jp       : 日本語入力モードでシェルを起動"
    echo "    jclaude  : 日本語入力モード付きで Claude Code を起動"
    echo "    Ctrl+Space or Ctrl+\\ : 日英切替 (uim-fep内)"
    echo ""
fi
```

### 4. UIM 設定ファイル(~/.uim を新規作成)

```scheme
;;; uim configuration for server-side Japanese input via SSH
;;; デフォルトの入力メソッドを Mozc に設定
(define default-im-name 'mozc)

;;; 日本語入力ON/OFF切り替えキー設定
;;; Ctrl+Space で切り替え
(define-key generic-on-key? '("<Control> " "zenkaku-hankaku"))
(define-key generic-off-key? '("<Control> " "zenkaku-hankaku"))

;;; Ctrl+\ でも切り替え可能(SSHクライアントでCtrl+Spaceが送信できない場合の代替)
(define-key generic-on-key? '("<Control> " "<Control>\\" "zenkaku-hankaku"))
(define-key generic-off-key? '("<Control> " "<Control>\\" "zenkaku-hankaku"))

;;; uim-fep用の設定
(define-key uim-fep-on-key? '("<Control> " "<Control>\\" "zenkaku-hankaku"))
(define-key uim-fep-off-key? '("<Control> " "<Control>\\" "zenkaku-hankaku"))
```

### 5. tmux 設定(~/.tmux.conf に追記、なければ新規作成)

```
# UTF-8サポート
set -g default-terminal "screen-256color"

# uim-fepがエスケープシーケンスを正しく処理できるようにする
set -sg escape-time 10

# マウスサポート(SSH経由で便利)
set -g mouse on
```

### 6. 動作確認

すべての設定が完了したら、以下を確認してください。

1. `source ~/.bashrc && source ~/.profile` で設定を反映
2. `locale | grep LANG` → `ja_JP.UTF-8` であること
3. `uim-fep` を起動し、`Ctrl+Space` を押して日本語入力モードに切り替わること
4. ローマ字で `nihongo` と入力して変換候補が表示されること
5. 確認後 `exit` で uim-fep を終了

## 注意事項

- `~/.bashrc` に既存の設定がある場合は、末尾に追記する形で追加してください。既存の内容を上書きしないでください。
- `~/.tmux.conf` も同様に、既存の設定があれば末尾に追記してください。
- `jclaude` エイリアスは Claude Code がインストールされている場合のみ有効です。Codex の場合は `alias jcodex='uim-fep -e codex'` に読み替えてください。

使い方

セットアップが完了したら、スマホから SSH ログインしてみましょう。以下のヘルプが自動で表示されるはずです。

  [日本語入力] uim-fep が利用可能です
    jp       : 日本語入力モードでシェルを起動
    jclaude  : 日本語入力モード付きで Claude Code を起動
    Ctrl+Space or Ctrl+\ : 日英切替 (uim-fep内)

あとは jp と打てば日本語入力モードに入れます。Ctrl+Space で日英を切り替えて使ってください。

よくあるトラブル

症状対処法
Ctrl+Space で切り替わらないCtrl+\ を試す。SSH クライアントによってキー送信が異なる
変換候補が出ないpgrep -a mozc_server で Mozc が起動しているか確認。止まっていれば /usr/lib/mozc/mozc_server & で起動
文字化けするSSH クライアント側の文字コード設定を UTF-8 に変更
tmux 内で入力が遅い~/.tmux.conf に set -sg escape-time 10 があるか確認

おわりに

この構成は Raspberry Pi に限らず、VPS やリモートの Linux サーバーなど、SSH 経由でしかアクセスできない環境全般で使えます。ヘッドレス Linux で日本語入力に困っている方はぜひ試してみてください。

プロンプトを貼るだけでコーディングエージェントが全部やってくれるので、Linux の設定ファイルに詳しくなくても大丈夫です。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次