Claude CodeでIBM i を操作する方法として、以前書いた記事「バイブコーディングでIBM i にあるRPGソースをWebアプリに移植してみた 」のように、MCPサーバーを構築するアプローチがあります。確かに強力ですが、Python環境の構築、ODBC環境構築、MCPサーバーの設置、設定ファイル…正直、手順が多い。とても面倒くさい。
もっと簡単な方法があります。 それは SSHを利用して Claude Code から IBM i を操作する方法 です。
この記事の前提
- IBM i に
db2utilのyumパッケージを導入していること ⭐️オプションですが推奨 - IBM i にSSHでアクセスできること
- SSH鍵認証が使えること(Claude Codeはパスワード入力ができないため)
- bash環境があること(Windows環境ではClaude Codeの利用にGit Bash or WSLが必要なので、入っているはずです)
鍵認証がまだの場合は、以下の手順で設定できます(Git BashやWSLで実行してください)。わからなければシステム管理者の方に相談してくださいね。
Mac/Linuxの人でもやり方は一緒です
SSH鍵認証の設定手順
PC側: 鍵の生成
ssh-keygen -t ed25519 -f ~/.ssh/ibmi_key
~/.ssh/ibmi_key(秘密鍵)と ~/.ssh/ibmi_key.pub(公開鍵)が作られます。パスフレーズは空にしてください(Claude Codeが非対話で使うため)。
IBM i 側: 公開鍵の登録
SSHまたはqp2term等でIBM i にログインし、以下を実行します。作業は SSH で接続するユーザーで実施してください。
事前確認(重要)
公開鍵を登録する前に、ホームディレクトリの状態を確認してください。
IBM i 環境では、IFS の所有者やパーミッションが適切でない場合、OpenSSH が鍵認証を拒否することがあります。
確認コマンド
ls -ld /home/YOUR_USER
YOUR_USERはご自分のユーザー名に変えてください
確認ポイント
- ホームディレクトリが存在していること(存在しない場合は IBM i 管理者に作成を依頼してください)
- 所有者が SSH でログインするユーザー本人であること
- group または other に w(書き込み) 権限が付いていないこと
出力例:
drwxr-xr-x 5 YOUR_USER group 4096 Jan 10 10:00 /home/YOUR_USER
drwxr-xr-x 5 YOUR_USER の YOUR_USER がユーザー本人であることを確認してください。
異なるユーザー(例: QSECOFR)になっている場合は、IBM i 管理者に依頼して所有者を変更してください。
drwxr-xr-x の部分の権限表示は次の順です:
owner group other
それぞれの意味:
-
r= read(読み取り) -
w= write(書き込み) -
x= execute(実行/ディレクトリの場合は「入れる」)
⚠ OpenSSH は group / other に write 権限がある場合、鍵認証を拒否することがあります。
修正が必要な場合
chmod go-w /home/YOUR_USER
セキュリティを重視する場合は、以下の設定を推奨します。
chmod 700 /home/YOUR_USER
YOUR_USERはご自分のユーザー名に変えてください
パーミッションや所有者の意味が不明な場合は、IBM i 管理者に確認してください。
公開キーの登録
mkdir -p /home/YOUR_USER/.ssh
chmod 700 /home/YOUR_USER/.ssh
YOUR_USERはご自分のユーザー名に変えてください
PC側の公開鍵をエディタ等で開き、中身をコピーします。
# 中身は以下のような1行のテキストです
ssh-ed25519 AAAAC3Nza... YOUR_USER@PC名
IBM i 側で authorized_keys に追加します。
echo "ここにコピーした公開鍵を貼り付け" >> /home/YOUR_USER/.ssh/authorized_keys
chmod 600 /home/YOUR_USER/.ssh/authorized_keys
YOUR_USERはご自分のユーザー名に変えてください。
接続テスト
ssh -i ~/.ssh/ibmi_key YOUR_USER@your-ibmi-host "echo 'OK'"
YOUR_USER、your-ibmi-hostはご自分の環境にあわせて変更してください。
パスワードを聞かれずに OK と返ってくれば成功です。
接続するために用意するもの
SSHの鍵認証ができるようになっていれば、設定は2ファイルだけです。
~/.ssh/config(Windows: C:\Users\ユーザー名\.ssh\config)
以下を追記してibmiという名前でSSHアクセスできるようにします。ファイルがなければ新規作成してください。
Host ibmi
HostName your-ibmi-host
User YOUR_USER
IdentityFile ~/.ssh/ibmi_key
YOUR_USER、your-ibmi-hostはご自分の環境にあわせて変更してください。IdentityFileはSSHにアクセスするための証明書になります。一応流れでibmi_keyというファイル名を使用していますが、こちらもご自分の環境にあわせて変更してください。
CLAUDE.md(Claude Codeを起動する作業ディレクトリに配置)
既存の CLAUDE.md があればそこに追記、なければ新規作成してください。
# IBM i
- SSH接続先: `ibmi`(.ssh/configで定義済み)
- バージョン: IBM i 7.5
- 利用可能コマンド: `system`(CLコマンド実行)、`/QOpenSys/pkgs/bin/db2util`(SQL実行)
これだけです。 CLAUDE.mdはたった4行。バージョンはご利用の環境で変えてください。
db2utilのyumパッケージの導入がされていない環境の場合、db2utilの記述を消してください。ただSQL経由の方がClaude Codeは効率よくデータを取得できます。
なぜこれで動くのか?
Claude Code → ssh ibmi "コマンド" → IBM i
Claude Codeはターミナルコマンドを実行できるので、SSHが通りさえすれば、その先のサーバー上のコマンドをssh経由で実行できます。
そしてClaude CodeはIBM i の知識を既に持っているので、CLコマンド体系、QSYSのライブラリ構造、SQLによるデータアクセス、RPG/COBOLのソース管理、これを全部知っています。
CLAUDE.mdにIBM i のバージョンを渡しているのはなるべく間違えないようにするためです
そのため CLAUDE.mdには system と db2util の情報だけは記述しましたが、 ls、cat、grep などのUnixコマンドは書く必要すらなく、Claude Codeが勝手に判断してSSH越しに実行します。もし他に使ってほしいコマンドがあれば CLAUDE.mdに追加すればいいだけです。
やってみる
Claude Codeを起動して、話しかけるだけです。
「IBM i のホームディレクトリのファイル一覧を見せて」
→ CLAUDE.mdに書いていないunixコマンドも使ってくれます。
「IBM i のシステム日付を教えて」
→ CLコマンド(ここではDSPSYSVAL)も使って情報を取得できています。
「アクティブなジョブの状況を教えて」
→ システム的な情報も取得できます。ここではSQLで取得していますね。
「DEMQUERYライブラリのテーブル一覧を取得して」
→ ライブラリ、テーブル、カラム等の情報も取得できます。ちゃんとラベル( TABLE_TEXT )も取得してくれていますね。
「デモ商品マスタの先頭10件を見せて」
→ テーブルの情報も取得してラベルも使ってデータを10件表示してくれています。先程の質問もしているので自動的に DEMQUERYライブラリの デモ商品マスタ を見に行ってくれていますね。賢いです。
おまけ: もっと広げたいなら
IBM i にはyum/rpmでOSSパッケージをインストールできます。まずは何が入っているか確認してみましょう。
IBM i にインストールされているyumパッケージを確認して
Claude Codeは ssh ibmi "yum list installed" を実行して一覧を取得します。
そしてそのまま続けて
IBM i の操作に役立つものだけ厳選して、用途のコメントつきでCLAUDE.mdの利用可能なコマンドに追記して
これだけで、Claude Codeがパッケージ一覧を見て、python3やNode.js、gitなど活用できそうなコマンドを判断し、CLAUDE.mdに追記してくれます。
pythonなどがインストールされているとわかると、更にClaude Codeの幅が広がります。
要するに自分でCLAUDE.mdを書く必要すらありません。Claude Codeに環境を調べさせて、勝手に設定を整えてもらいましょう。
注意点
SSHで操作させるため、基本的になんでもできてしまいます。そのため以下のことは気をつけてください
- IBM i 側のユーザー権限は必要最小限に
- まずは開発・検証環境で試しましょう
- 面倒くさいですがコマンドは毎回確認しましょう
まとめ
Claude Codeが導入されていれば、.ssh/config と4行の CLAUDE.md。たったこれだけで、Claude CodeがIBM i を操作できるようになります。
「なんでもできてしまう」という怖さはありますが、MCPサーバーの構築より簡単にClaude CodeによるIBM i の操作を試すことができます。コマンドやSQLの勉強にもなると思います。





