■概略
オープンソースエンジニア歴30年超の筆者が2023年からIBMiを学びだした学習記録です
VSCodeで開発を行うには、IBMiでsshdを起動しssh接続します。IPLの度に手動起動するのは手間なので、sshdの自動起動を設定します
■IPL時のQSTRUPにsshを起動するCLを追加する手順
*QCLSRCソースファイルを(どこかに)作成する
5250でIBMiにuser1でログインし、USER1LIB/QCLSRCを作成する
※入門1にIBMiに階層ディレクトリはないと書きましたが、IBMiではソースファイルが
フォルダ相当でメンバーファイルがソースファイルの階層になっています
CRTSRCPF FILE(USER1LIB/QCLSRC) IGCDTA(*YES)
*QCLSRCにSTRSSHCLPメンバーを追加する
STRSEU QCLSRC
Ctrl-vでペースト
画面でメンバー名などを指定し、F3で保存して終了
SEU参考URL : https://qiita.com/You_name_is_YU/items/2ebc3eb32827c5e4c5d0
PGM
MONMSG MSGID(CPF0000)
CHGJOB LOG(4 0 *NOLIST) CCSID(5035)
QSH CMD('/QOpenSys/usr/sbin/sshd')
CHGJOB LOG(4 10 *SECLVL) CCSID(65535)
ENDPGM
※LOG(4 0 *NOLIST)を設定する理由
IFSでシェルスクリプトを実行すると1行につき1ジョブログが出力される
コンパイルスクリプトだと大量の出力になり、SYSVALのQMAXJOB=163,520に近づくと
システム全体が激遅になる
そのため自動起動CLでジョブログの出力抑制をしている
*STRSSHCLPをコンパイルする
CRTCLPGM PGM(USER1LIB/STRSSHCLP) SRCFILE(USER1LIB/QCLSRC)
*手動でSSHDを起動する
CALL STRSSHCLP
*sshd_configを修正
sshd起動にsshd_configの値の修正が必要な場合がある
edtf "/QOpenSys/QIBM/UserData/SC1/OpenSSH/etc/sshd_config"
----
UsePrivilegeSeparation no
↓
#UsePrivilegeSeparation no
*IPL(起動)スクリプトにSTRSSHCLPを入れてコンパイル
QGPL/QCLSRC/QSTRUPが起動CLソース
QSYS/CALL PGM(USER1LIB/STRSSHCLP)
MONMSG MSGID(CPF0000)