セキュア FTP (SFTP) は、メインの MFFTP プログラムで PuTTY SFTP の実装をシェルアウトして呼び出すことで実現します。
これは、FTPS (SSL/TLS を使用する FTP) ではなく、FTP over Secure Shell (SSH) です。
PuTTY ツールセットをインストールしてパスを通す必要があります。
具体的には、PuTTY SFTP の実行可能ファイル psftp.exe が必要です。
これらのユーティリティは、ここからダウンロードできます。
証明書ベースの承認を使用する場合は、証明書を使用できる必要があります。これを実現するためのプロセスについては、PuTTY のマニュアルを参照してください。
次の制御変数を構成する必要があります。
認証に使用する成果物を次のように決定するために使用します。
4 つの各変数には、値が次のように割り当てられています。
1 – ユーザー ID
2 – パスワード
4 – 証明書
8 – パスフレーズ
次のように必要な値を加算して、認証に使用する要素を取得します。
1 - ユーザー ID のみ
2 - パスワードのみ
3 - ユーザー ID とパスワード
4 - 証明書のみ
5 - 証明書とユーザー ID
6 - 証明書とパスワード
7 - 証明書とユーザー ID とパスワード
8 - 無効 (パスフレーズを持つには証明書が必要)
9 - 無効
10 - 無効
11 - 無効
12 - 証明書とパスフレーズ
13 - 証明書とパスフレーズとユーザー ID
14 - 証明書とパスフレーズとパスワード
次の DD 定義で承認パラメーターを構成できます。
次のパラメーターが有効です。<> 内のテキストを正しい値に置き換えてください。
FTP.DATA というデータセットで制御変数を構成し、FTP.PRIV.DATA というデータセットに ppk 証明書を配置する JCL の例
//SETUP02 JOB 'FTP.DATA',MSGCLASS=X,CLASS=A,MSGLEVEL=(1,1) //*-------------------------------------------------------- //DEL EXEC PGM=IEFBR14 //DEL1 DD DSN=FTP.DATA,SPACE=(TRK,1),DISP=(MOD,DELETE) //DEL2 DD DSN=FTP.AUTH.DATA,SPACE=(TRK,1),DISP=(MOD,DELETE) //DEL3 DD DSN=FTP.PRIV.DATA,SPACE=(TRK,1),DISP=(MOD,DELETE) //*========================================================== //* FTP.PRIV CONFIGURATION FILE //*========================================================== //DEFPRIV EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //SYSUT1 DD * PuTTY-User-Key-File-2: ssh-rsa Encryption: aes256-cbc Comment: slesz1 Public-Lines: 6 AAAAB3NzaC1yc2EAAAABJQAAAQEAmTd1uLtTsQ6RoyTuhzr3VxFBa0zAK7p91XbQ sa1NRh9lcVs8zeI3xOzNfW4fyTAe4YUyLCxF0dSXTChDvJtqNeNa9bXiY/noTzc8 WmnWklGzOI+JoxLGIfFvzEN/LjxkB3Tzmc5ESsLLC/xTJrvcuCw/H5Wbh377xaKH 6S4NfXCtaYxWJ3vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv0MRfH15y8DqF9bWhOP6 ywmZAmIZqJeL+0cgeGFtADiV7DSGSrMyEvKayh1OTTRpgebJ40fFaqWvPW6D5yQW LafvaQLh+OIuMc9iAUwhoetw7VNBLekIFUvwtpS6Pdrs98f0ZQ== Private-Lines: 14 Wo+ACSDjbOHFd3XXSaYI+meJ5wgJklTLIRjYzJe6QB3bRelm0iSdPTo+lJ8Gtn0u 7mXHsszk0hXAtkv1nWAVPYszk5tk+kY/zuT9YVRp03nwsuW/WQkofNAn5C205/sC WfvlklaYIBe5FBVmVUYu+p4FzTJYmshZDqMRLYGougB8LLI8knlRfmJn3jgjWR3Z yRS7XIzgBExy+NX6dyv6UA1mWHU2kV22ao7NBot9M9p2BrVh8NTyYwc4SDz238H9 JIV50m+BZkmZLhRHUokABY3DwAzDQnQHMRFLJ8rOFkPw4WfrJHyy9Do1wU5PlqJ/ SF7FSpTVlzilP7aI5mzexdrXs5WZtxJ5wDvSHTUmtcQSh2YDLxAZf4IPavHsD+eM nJh4AsU8Pvd4Op5ONPBJY1xrCdQ0AtfrvudFWjPlLJgm8901wo7Mzokbk3ys5sR+ IVu6FWCBk9iN+0KLLPxxxxxxxxxxxVmVzUK8AtbWkBr01bFSAbHiLgnwm1M4LwJz r1vY96CrBGEfj7wCKeaFmw7FIvc1r8n3WyYcmUfiv0WqZeuBX+yb90QwxzarQBuD Cbn7hgXgQq6ckE2BerhpM8TRpa2xHk5t0ACrZNyOIrfyRs6E+Bk6dmseMqWJYdRb 7lqdHH6smXW/fMLMurFv0P4WX7f4IPF4OrBG3CoJ3rBCTFXa6/+RaUjaC0/RKUtu n09m8WLdxVemHhlrg99NQmLx9JEUSr+GbiriAgj5bdppZB5Niz3YiKodZVtcH3ow 90rND6pMrKF/Fs6Zkt7Oxf8bIX3yzs7dpq9OqWU0AuyS5oMwtyMdBjmDrTBEumoF tKtHuQxX95/TXOJasCaMNRCb1RmGo7bbzo00Xjiq0UHj/fDZuGg9E1Dm2oXYGxg8 Private-MAC: 54aba03aff3cd77f65335b92b6a72df08034462b /* //SYSUT2 DD DSN=FTP.PRIV.DATA,SPACE=(TRK,1),UNIT=SYSDA, // DCB=(RECFM=LSEQ,LRECL=80),DISP=(NEW,CATLG) / //*========================================================== //* FTP.AUTH CONFIGURATION FILE //*========================================================== //* keypcn d:\util\putty\keys\slesz11-3private.ppk //DEFAUTH EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //SYSUT1 DD * machine slesz1 user fred pass password keypass slesz1ABCDEF hostkey 12:03:da:81:ea:49:6d:96:ed:6f:46:eb:84:27:4d:12 /* //SYSUT2 DD DSN=FTP.AUTH.DATA,SPACE=(TRK,1),UNIT=SYSDA, // DCB=(LRECL=80,RECFM=FB,DSORG=PS),DISP=(NEW,CATLG) / //*========================================================== //* FTP.DATA CONFIGURATION FILE //*========================================================== //DEFFTP EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //SYSUT1 DD * ; --------------------------------------------------------------------- ; MFFTP SETTINGS ; --------------------------------------------------------------------- MFFTP_ABCODE 3085 ; SET DEFAULT ABEND CODE FOR MFFTP MFFTP_OUTPUT_LRECL 120 MFFTP_PREFIX=Y MFALLOC_LOC d:\temp\j1 ;MFFTP_VERBOSE_OUTPUT ON ;MFFTP_KEEP_IP Y ;MFFTP_KEEP Y MFFTP_CLIENT=SFTP MFFTP_SFTP_AUTH=13 ..... and so on /* //SYSUT2 DD DSN=FTP.DATA,SPACE=(TRK,1),UNIT=SYSDA, // DCB=(LRECL=80,RECFM=FB,DSORG=PS),DISP=(NEW,CATLG) //SFTP を利用して FTP を使用する JCL の例
//MFFTP05 JOB 'MFFTP TEST',CLASS=A,MSGCLASS=A //* sftp flavour . //* //* Delete files //* //DEL1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DELETE MFI01.MFFTP.FBFILE.TOUPLD FORCE DELETE MFI01.FTPDATA.FBFILE FORCE DELETE MFI01.MFFTP.GDG FORCE SET MAXCC=0 /* //* //* Allocate GDG base //* //ALLOC EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * DEFINE GDG - (NAME(MFI01.MFFTP.GDG) - LIMIT(5) - NOEMPTY - SCRATCH) /* //* //* Create an FB/10 dataset //* //STEP0 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //SYSUT1 DD * AAAAAAAAAA BBBBBBBBBB /* //SYSUT2 DD DSN=MFI01.MFFTP.FBFILE.TOUPLD, // DISP=(NEW,CATLG,DELETE), // DCB=(RECFM=FB,LRECL=10) //* //* Upload an MVS dataset //* //STEP1 EXEC PGM=MFFTP,PARM='slesz11-3.microfocus.com' //SYSOUT DD SYSOUT=* //OUTPUT DD SYSOUT=* //SFTPAUTH DD DSN=FTP.AUTH.DATA,DISP=(SHR) //SFTPPPK DD DSN=FTP.PRIV.DATA,DISP=(SHR) //INPUT DD * cd MFFTP_TEST mkdir machine_os cd machine_os put MFI01.MFFTP.FBFILE.TOUPLD MFFTP01.txt quit /* //* //* Download a text file to an MVS dataset (FB/10) //* //STEP2 EXEC PGM=MFFTP,PARM='slesz11-3.microfocus.com' //SYSOUT DD SYSOUT=* //OUTPUT DD SYSOUT=* //SFTPAUTH DD DSN=FTP.AUTH.DATA,DISP=(SHR) //SFTPPPK DD DSN=FTP.PRIV.DATA,DISP=(SHR) //INPUT DD * cd MFFTP_TEST/machine_os locsite recfm=fb lrecl=10 get MFFTP01.txt MFI01.FTPDATA.FBFILE (rep MFFTP_VARS quit /* //* //* Download a text file to a new GDG bias //* //STEP3 EXEC PGM=MFFTP,PARM='slesz11-3.microfocus.com' //SYSOUT DD SYSOUT=* //OUTPUT DD SYSOUT=* //SFTPAUTH DD DSN=FTP.AUTH.DATA,DISP=(SHR) //SFTPPPK DD DSN=FTP.PRIV.DATA,DISP=(SHR) //INPUT DD * cd MFFTP_TEST/machine_os locsite recfm=fb lrecl=10 locstat get MFFTP01.txt MFI01.MFFTP.GDG(+1) del MFFTP01.txt cd .. rmdir machine_os /*