2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

z/OSのSSH, SCP, SFTPのEBCDIC-ASCII変換について。SCPでEBCDIC-ASCII変換が行われないとき。

Last updated at Posted at 2023-10-31

z/OS UNIX System Servicesと、OpenSSH_9.0以上のSCPクライアントでASCIIテキストファイルを送受信する場合は、-Oオプションを使用しましょう。

以上。

解説

最近は、z/OSでも、セキュリティー上の理由でTELNET, FTPを禁止し、SSH, SCP, SFTPを使用するようになってきています。z/OSでこれらを使う場合のユーザーの最大の関心事は、EBCDICテキストの取り扱いだと思います。

まず初めに、SSHではISO/IEC 8859-1(日本ではA0からFFの領域を使うことが少ないのでASCIIとほぼ同義)しか扱えません。UNIX System Servicesのコンソールで日本語を使用することはあきらめましょう。ASCIIの範囲であれば、SSHはEBCDIC-ASCII変換をしてくれます。

z/OS OpenSSH does not support multibyte locales. z/OS OpenSSH does not support running in multibyte locales. It currently only supports single-byte locales that are compatible with ASCII coded character set ISO/IEC 8859-1.

SCP, SFTPについては、バイナリ転送する場合はSFTP, ASCIIテキストファイルをEBCDIC-ASCII変換して転送する場合はSCPが使用できます。

sftp can treat files as binary or text. By default, sftp assumes that files are binary.
scp treats files as text. By default, scp performs ASCII/EBCDIC conversion on files.

ところで、最近SCPでファイル転送しているつもりなのに、なぜかEBCDIC-ASCII変換をしてくれないことはないでしょうか。

$ echo abcdefg > test.txt
$ scp -i ~ test.txt ~@~:.
test.txt                                                                                           100%    8     0.1KB/s   00:00
$ ssh -i ~ ~@~
> cat test.txt
/□□□□□Ŏ
> iconv -f utf8 -t ibm1047 test.txt
abcdefg

そういう時は、SCPクライアントのバージョン(OpenSSHのバージョン)を確認しましょう。

$ ssh.exe -V
OpenSSH_9.3p1, OpenSSL 3.1.1 30 May 2023

OpenSSH_9.0以上の場合、SCPは内部でSFTPプロトコルを使用するように変更となっています。

OpenSSH 9.0/9.0p1 (2022-04-08)
~
Changes since OpenSSH 8.9
~
Potentially-incompatible changes
~
This release switches scp(1) from using the legacy scp/rcp protocol
to using the SFTP protocol by default.

$ scp -v -i ~ test.txt ~@~:.
~
debug1: Sending subsystem: sftp
~

SCPでテキストファイルをEBCDIC-ASCII変換して転送したい場合は、-Oオプションを使用してレガシーなSCPプロトコルを使いましょう。

In case of incompatibility, the scp(1) client may be instructed to use
the legacy scp/rcp using the -O flag.

$ scp -O -v -i ~ test.txt ~@~:.
~
debug1: Sending command: scp -v -t .
~
$ ssh -i ~ ~@~
> cat test.txt
abcdefg

よきz/OSライフを。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?