■前提
PVSをインターネットから使う場合、telnet(23)ポートにはアクセスできません
ssh(22)で接続してPortForwardingでPVSのtelnet他のポートにアクセスします
◯sshの応用機能
sshはtelnet同様リモートコントロールするために使いますが、以下の違いがあります
*通信が暗号化されている
*秘密鍵/公開鍵でパスワードを入力しない認証ができる
*PortForwardingで他の通信(ここではtelnet)をトンネルすることで暗号化できる
gitもプロトコルはsshで認証に秘密鍵/公開鍵を使います
sshの応用機能を覚えておくとよいでしょう
■ssh
◯sshを使えるネットワーク環境か確認する
多くのIBM i企業ではオフィスから外部へのssh通信をブロックしていることが多いです
IBM iにssh通信できるか確認しましょう
WindowsのPowerShell標準のsshコマンドが使いやすいと思います
PS C:\Users\{ユーザ名}\.ssh> ssh {アカウント名}@{IP}
ブロック時のエラーメッセージ例) Connection Refused, Connection Timeout
つながったら初回のみfingerprintの保存(PCのC:\Users{アカウント名}.ssh\known_hostsに記録)するかたずねられます(yesと答える)
◯鍵ペアを作成します
ssh認証でパスワードなしにしたい場合、秘密鍵ファイル(.key)と公開鍵ファイル(.pub)を使用します
sshクライアントは秘密鍵を使用し、対になる公開鍵をサーバ側に登録します
gitもgit://はsshプロトコルを使うためパスワードなし認証に鍵ペアを使います
WindowsならPowerShellで以下コマンドで鍵ペアを作成します
BobのターミナルもPowerShellです。筆者は字が小さいのでWindowsTerminalのPowerShellを使用しています
PS C:\Users\{ユーザ名}> mkdir .ssh *ホームディレクトリの.sshに各種設定を入れます
PS C:\Users\{ユーザ名}> cd .ssh
PS C:\Users\{ユーザ名}> ssh-keygen -f {鍵ファイル名}.key -t rsa -b 4096
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): *Enter(認証時に入力を不要にするため)
Enter same passphrase again: *Enter(認証時に入力を不要にするため)
Your identification has been saved in {鍵ファイル名}.key
Your public key has been saved in {鍵ファイル名}.pub
The key fingerprint is:
SHA256:aGj4y1v+HnbxtU0ed4DD44YfSw0KgqD78yVcAn/5Ugo azuread\名前@ホスト名
The key's randomart image is:
+---[RSA 4096]----+
| . |
| . . . . . |
|. . . . . * . |
| . + . + . + = . |
|. . E * S + = o.+|
| . + * + * + =+|
| o + = + . + . o|
| + * o o |
| =..oo |
+----[SHA256]-----+
C:\Users{ユーザ名}\.ssh\鍵ファイル名.key
C:\Users{ユーザ名}\.ssh\鍵ファイル名.key.pub が作成されます
◯IBMiサーバに公開鍵を登録する
1.IBMiサーバに.sshディレクトリを作成する
PS C:\Users\{ユーザ名}> ssh {アカウント名}@{IP}
{アカウント名}@RISING2026-F-IBMI1:~$ mkdir .ssh
2. PCで作業
PS C:\Users\{ユーザ名}\.ssh> scp {鍵ファイル名}.key.pub {アカウント名}@{IP}:/home/{アカウント名}/.ssh/authorized_keys
5.IBMiにsshして作業
scpでアップするとファイルのオーナーもグループメンバーもその他全員も読めます
chmodでオーナーだけが読めるように変更しないと鍵認証が通りません
takami@RISING2026-F-IBMI1:~$ chmod 700 .ssh
takami@RISING2026-F-IBMI1:~$ chmod 600 .ssh/authorized_keys
*UNIXの権限の解説
権限一覧(実行後)
takami@RISING2026-F-IBMI1:~$ ls -la ※UNIXのファイル一覧(権限付)表示コマンド
total 196
drwx--S--- 7 takami 0 24576 Jul 16 08:13 .
-rw-r--r-- 1 takami 0 3957 Jul 3 04:34 .bashrc
-rw-r--r-- 1 takami 0 5 Jul 3 02:35 .profile
drwx------ 2 takami 0 8192 Jul 3 05:40 .ssh
d rwx rwx rwx
先頭の d はdirecotry, - はファイルを示す
rwxが3回繰り返されているのは、オーナー,グループ, その他の権限
r : read権限
w : write権限
x : execute(プログラムの実行)
rwxを2進数で指定できる
rwx => 111 => 7
rw- => 110 => 6
--- => 000 => 0
オーナー,グループ,その他の繰り返しを3桁数字で指定できる
700 => rwx --- --- ※オーナーだけが読み書き実行(ディレクトリ内部を見る)ことができる
600 => rw- --- --- ※オーナだけが読み書きができ、実行はできない
◯パスワードなしログイン
PS C:\Users\{ユーザ名}\.ssh> ssh -i C:\Users\{ユーザ名}\.ssh\takami@pvs.key takami@128.168.100.36
takami@RISING2026-F-IBMI1:~$
◯.ssh/configにPortForwarding含めて設定
.ssh/configを設定することで以下のように簡単にログインできます
この設定は5250のログインでもgitでも必要になるのでぜひ試してください
PS C:\Users\{ユーザ名}\.ssh\config
Host pvs
HostName 128.168.100.36
IdentityFile ~/.ssh/takami@pvs.key
User takami
Port 22
IdentitiesOnly yes
LocalForward 10023 localhost:23
LocalForward 449 localhost:449
LocalForward 8470 localhost:8470
LocalForward 8475 localhost:8475
LocalForward 8476 localhost:8476
ログイン実行
PS C:\Users\PowerShell\.ssh> ssh pvs
takami@RISING2026-F-IBMI1:~$
■5250
参考 : https://qiita.com/6onoda/items/0f8ae5d58b6c64c0bb42
PVSをインターネットから使う場合、telnet(23)ポートにはアクセスできません
ssh(22)で接続してPortForwardingでPVSのtelnet他のポートにアクセスします
上記.ssh/configで接続すれば以下の接続に必要なポートがPortForwardingされています
23 - Telnet
449 - Server Mapper
8470 - License Management
8475 - Remote Command
8476 - Signon Verification
◯sshで接続する
PS C:\Users\{ユーザ名}> ssh pvs
◯ACSで接続する
sshセッションを通してPC(localhost)の10023ポートがIBMiの23ポートに転送されています
[新規ディスプレイセッション]
セッション名 : PVS
宛先アドレス : localhost
宛先ポート : 10023
プロトコル : telnet(非セキュア)
ホストコードページ : 1399 日本語(Latin Unicode拡張)