AWS Session ManagerをGit Bashで利用した際の文字化け対処法

| 6 min read
Author: takahiro-maeda takahiro-maedaの画像

はじめに

#

普段、業務ではどのような OSを使っているでしょうか。
筆者個人では Macを使っていますが、業務では Windowsを利用しています。

Windows環境では、軽量で扱いやすく、POSIXライクな操作ができる Git Bashを利用しています。
Windows Terminalからも使えるため、普段使い慣れたコマンドをそのまま利用でき、 AWS CLIとの相性が良い点も便利です。

このような理由から、AWS Systems Manager Session Manager(以下、SSM)経由で EC2に接続する際にも Git Bash を利用していました。
しかし、Windows 環境の Git Bash では、lsblksystemctl status などに含まれる一部の罫線・記号が文字化けすることがありました。

本記事では、この事象の再現内容、原因、対処方法を紹介します。

結論としては、session-manager-plugin を最新版へ更新するのが第一選択です。
更新が難しい場合は、chcp.com 65001 でコードページを UTF-8 に変更する方法が有効でした。

なお、 Macから接続した場合は同様の問題は発生しませんでした。

前提

#

以下の環境で検証しています。

  • OS: Windows: 11(Pro)
  • Terminal: Git Bash
  • AWS CLI: aws-cli/2.32.16 Python/3.13.11 Windows/11 exe/AMD64
  • session-manager-plugin: 1.2.707.0(検証開始時)→1.2.792.0(解決)

次のような方を対象としています。

  • Windows + Git Bash で AWS CLI / SSM を利用してEC2への接続している方。
  • lsblksystemctl status の罫線・記号などの文字化けする方。

先に結論

#

対処方法は次の通りです。

優先度 対処方法 補足
1 session-manager-plugin を最新版(1.2.792.0 以降)へ更新する 根本対応。まずはこちらを推奨
2 chcp.com 65001 を実行する プラグインを更新できない場合の暫定対処
3 .bashrc に設定する 暫定対処を継続利用する場合の恒久化

推奨対処: session-manager-plugin を最新版へ更新する

#

検証を進める中で、最新版の session-manager-plugin に更新すると事象が解消することを確認できました。

※このバージョンは、記事の執筆・検証時点の3日前に最新版がリリースされていました。

執筆時点では、最新版の1.2.792.0 にプラグインを更新することで文字化けが再現しなくなりました。

インストール方法は、以下の AWS 公式ドキュメントを参照してください。

WindowsでのSession Managerプラグインのインストール

なぜ1.2.792.0で改善したのか

#

執筆時点での最新版である1.2.792.0 のリリースノートには、 Windows環境でのキーボード入力や文字処理に関する修正が含まれていました。

1.2.792.0に関連する以下のPRを見ると、本記事の事象と近い問題が修正対象になっていることが分かります。

PRでは、Windows版のsession-manager-pluginが出力時にwindows.WriteFileAPIを使用しており、UTF-8の一部の言語の文字が正しく処理できていなかったことが説明されています。

その結果、中国語や日本語の入力・出力の一部で文字化けが発生していたと考えられます。

本記事で確認した文字化けも、この修正を含む1.2.792.0で改善した可能性が高いと考えられます。


本記事の後半は、古いバージョン (1.2.707.0) を利用していたときの再現内容と暫定対処をまとめたものです。

まずはプラグインを最新版へ更新し、改善するかを確認してください。

文字化けの事象(古いプラグインの場合)

#

古いバージョンのプラグイン(例:1.2.707.0)を使用している場合、以下のようなコマンドを実行した際に文字化けが発生しました。

今回は Amazon Linux 2023 と Ubuntu 24.04 の公式AMIで検証しましたが、AMIに依存せず、同様の箇所で文字化けが発生しました。

lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0          7:0    0 27.8M  1 loop /snap/amazon-ssm-agent/12322
loop1          7:1    0   74M  1 loop /snap/core22/2339
loop2          7:2    0 48.1M  1 loop /snap/snapd/25935
nvme0n1      259:0    0    8G  0 disk
笏懌楳nvme0n1p1  259:1    0    7G  0 part /
笏懌楳nvme0n1p14 259:2    0    4M  0 part
笏懌楳nvme0n1p15 259:3    0  106M  0 part /boot/efi
笏披楳nvme0n1p16 259:4    0  913M  0 part /boot
systemctl status sshd
笳・sshd.service - OpenSSH server daemon
     Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: enabled)
     Active: active (running) since Sun 2026-03-20 14:18:54 UTC; 1min 12s ago
       Docs: man:sshd(8)
             man:sshd_config(5)
   Main PID: 1553 (sshd)
      Tasks: 1 (limit: 1067)
     Memory: 2.3M
        CPU: 15ms
     CGroup: /system.slice/sshd.service
             笏披楳1553 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

ご覧の通り、罫線やステータスアイコンが文字化けしています。

原因

#

この文字を調べてみたところ、以下の通りでした。

本来 Unicode 文字化け
├─ U+251C,U+2500 笏懌楳
└─ U+2514,U+2500 笏披楳
U+25CF (末尾不正)

以上から、今回の文字化けは UTF-8の文字列が CP932(Shift_JIS 系)として誤って解釈されたことで発生していると考えられます。

つまり、 SSM経由で受け取った文字列と Git Bash側のコンソールのページ文字コード設定が一致しておらず、その結果として罫線や記号が正しく表示されなかった、という状況です。

Git Bash側の設定確認と暫定対処

#

Git Bashの現在の設定を確認する

#

今回の環境では、chcp.com の結果は CP932でした。

自身の Git Bashの現在の設定を確認したい場合は以下のコマンドで確認できます。

chcp.com
現在のコード ページ: 932

暫定対処: コンソールの文字コードをUTF-8に変更する

#
Information

まずは session-manager-plugin を最新版へ更新し、改善することを確認してください。
ここで紹介する方法は、プラグインを更新できない場合の暫定対処です。

最新版のダウンロードができない・インストールに制約がある環境の方は以下の通り、現在のページのコードをUTF-8へ変更するコマンドを試してみてください。

chcp.com 65001
Active code page: 65001

Git Bash上では単なるchcpを認識せず、期待通り動作しません。
これは Windows標準の C:\Windows\System32\chcp.comを明示的に呼び出す必要があるためです。

参考情報

結果

#

コンソールの文字コードを UTF-8へ変更後に再度確認したところ、文字化けが発生していた箇所が正常に出力されることを確認できました。

最新版のsession-manager-pluginに更新・利用した場合は、chcp.com 65001を実行しなくても、文字化けせずに出力されました。

lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0          7:0    0 27.8M  1 loop /snap/amazon-ssm-agent/12322
loop1          7:1    0   74M  1 loop /snap/core22/2339
loop2          7:2    0 48.1M  1 loop /snap/snapd/25935
nvme0n1      259:0    0    8G  0 disk
├─nvme0n1p1  259:1    0    7G  0 part /
├─nvme0n1p14 259:2    0    4M  0 part
├─nvme0n1p15 259:3    0  106M  0 part /boot/efi
└─nvme0n1p16 259:4    0  913M  0 part /boot
systemctl status sshd
● sshd.service - OpenSSH server daemon
     Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: enabled)
     Active: active (running) since Sun 2026-03-20 15:22:04 UTC; 33s ago
       Docs: man:sshd(8)
             man:sshd_config(5)
   Main PID: 1549 (sshd)
      Tasks: 1 (limit: 1067)
     Memory: 2.3M
        CPU: 15ms
     CGroup: /system.slice/sshd.service
             └─1549 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

設定の恒久化

#

毎回コードページを変更するのが面倒な場合は、.bashrc に設定しておくことで Git Bash 起動時に自動で UTF-8 に切り替えられます。

echo 'chcp.com 65001 > /dev/null' >> ~/.bashrc

まとめ

#

今回は、Git Bash で SSM を利用した際に発生する文字化けの原因と対処方法を紹介しました。

ポイントをまとめると、次の通りです。

  • まずはsession-manager-pluginを最新版へ更新する
  • 古いプラグインを使っている場合、Git Bash側のページ文字コードが原因で文字化けすることがある
  • 更新できない環境では、chcp.com 65001によるUTF-8化が有効
  • 継続利用する場合は .bashrcへの設定で恒久化できる

これまでは文字化けが起きても、表示が崩れた部分を手で読み替えながら対応していました。

最近は EC2 周りの作業が増え、文字化けに遭遇する頻度も高くなったため、本記事で対処方法を調べました。

解決方法にたどり着くまで時間がかかったので、本記事の内容がお役に立てば幸いです。

最後までご覧いただきありがとうございました。

豆蔵では共に高め合う仲間を募集しています!

recruit

具体的な採用情報はこちらからご覧いただけます。