SCP(=Secure Copy Protocol)とは SCH上で異なるLinuxプラットフォーム間で行う
ファイルコピーのことである。
例えばこのように使うことができる。
scp -tt -l quattro@192.168.1.128:/etc/hosts /TEST/hosts
※ -ttを指定しないと日本語が文字化けする。
quattro: Linux のユーザー名
192.168.1.128 Linux の IP アドレス
/etc/hosts 転送元の Linux のファイル名
/TEST/hosts 転送式の IBM の IFS のファイル名または
ディレクトリー名
つまり
scp (相手Linuxユーザー名)@(相手先IPアドレス):(コピー元ファイル ) (コピー先DIRまたはファイル名)
という構文であるが
IBM iのコマンドに慣れているIBMユーザーにとって覚えずらい構文である。
そこで Python.400では
SCP ファイル転送 (SCP)
選択項目を入力して,実行キーを押してください。
IP アドレス . . . . . . . . . . '192.168.1.128'
ユーザー . . . . . . . . . . . 'quattro'
転送方向 . . . . . . . . . . . *TOI *FROMI, *TOI
FROM ファイル . . . . . . . . .
TO ファイル . . . . . . . . . .
ファイルの置換えまたは追加 . . *NONE *NONE, *ADD, *REPLACE
のようにコマンド: SCPが用意されている。
さらに実際の業務で SCPコマンドを使う必要はあまりないはずである。
Python.400で SCPが使用される場面は開発者のPCに保存されているPythonソースを
IBM iのPASE環境にコピーするときだけである。
その場面でも *LOCAL と指定するだけで自分のPCのIPアドレスは自動的に読み取られるので
開発者がSCPを意識して操作する必要はあまりない。
■ PASE環境の SCP の問題点
ここからは SCPの内部の問題点の話であるが
これは弊社の備忘録のようなものであるので
参考程度にしておくだけで十分である。
読者は SCPを使ってファイル・コピーができることを
理解して頂くだけで十分である。
さて以前に SSHは
①公開鍵/秘密鍵による機密保護
②パスワードによる機密保護
の2つの方法が用意されていると紹介した。
しかし IBM Redbook によれば
Redbook 「Securing Communications with OpenSSH on IBM i5/OS」

※ RedBookとはホワイト・ペーパーよりさらに詳しい技術解説のことを意味する
技術文書であり英文でのみ公開されている。
IBMはRedPaperと称しているが一般的にはRedBookと呼ぶ。
PASE環境の SSHは
公開鍵/秘密鍵があればそれを使い、無ければパスワードを
要求する。
という処理を行うのだが
PASE環境の SCP は
公開鍵/秘密鍵があればそれを使い、無ければエラーにっなってしまう
ということでパスワードによる機密保護の選択枝はない。
これは一般的な UNIXやLinuxの仕様に反している。
また 調べたところ AIXの仕様でもない。
AIXでも UNIXの仕様に準じていてエラーになることはない。
PASE環境下の SSHは OpenSSHの一部であるはずなので
正常に動作すればパスワード認証もできるはずなのであるが
OS Ver7.1~7.5まではパスワード認証は認められない。
一部のインターネット・サイトでは公開鍵による方法しか
紹介されていない場合がほとんどであるが
PASE環境ではパスワード認証に失敗したからであろう。
RedBookの情報がわからないので公開鍵の方法だけを
やたら詳しく紹介しているのではないかと思う。
この公開鍵/秘密鍵の設定方法は別途くわしく紹介する。
なおPython.400ではこのような難しい設定は開発支援サービスとして
弊社が行うのでユーザーは学習する必要はない。
■ WindowsやLinux上からSCPを起動する場合は問題ない
前述の話はIBM iから SCPを起動するときの問題であり
WindowsやLinuxからSCPを起動するときは
パスワード認証も問題なく使うことができる。
