3
1

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 5 years have passed since last update.

マルチ・プラットフォームを扱うインフラ屋さんのための連携技術: SSH編 その2

Last updated at Posted at 2016-09-12

#z/OSのSSHについての補足

マルチ・プラットフォームを扱うインフラ屋さんのための連携技術: SSH編の続きです。
異なるプラットフォームを扱う際は、「文字コード」の違いが問題になるケースがあります。
大体こんな感じの使い分けがされてます。

  • Windows: SJIS
  • Unix/Linux: UTF-8/ECU-JP/SJIS
  • z/OS(USS含む): EBCDIC

z/OSのUSS(Unix System Service)は、Unixと言いながらもメインフレームなだけあってやっぱり文字コードはEBCDICで扱われます。
z/OSのユーザー・インターフェースについて考える ~teraterm利用のすゝめ~
こちらの記事でも書いているように、z/OSのUSS使うときも他のプラットフォームと同じようにteraterm使いましょうよ、ということを言っているのですが、teratermが普通にz/OSでも使えているのが実は不思議でした。コード変換ってどうしてるのかな~?という疑問をしばらく放置していたのですが、関連する記述見つけたので補足しておきます。

z/OS V2.2のマニュアル
z/OS V2R2 OpenSSH User's Guide - Globalization on z/OS systems - OpenSSH and globalization

この記述によるとこんな感じです

  • SSHクライアント(Windows) - SSHサーバー(z/OS)間の通信では、ASCII-EBCDIC変換が行われる
  • ネットワーク上はISO8859-1(ASCII)でデータのやり取りが行われる
  • マルチバイトのロケールはサポートされない。つまり日本語はNG。

もう1つ疑問だったのはscp(sshプロトコルを使用したファイル転送)を使う場合。scpはftpのように転送モード(binary/ascii)が無いので基本バイナリーで扱われるものだと思ってましたが、Windows-z/OS間ではコード変換されていました。これについても上のマニュアルに記載がありまして、z/OSのSSHではscpは基本的にファイルはテキストとして扱われ、なんとコード変換の対象になってしまうんですと。ということは逆に言うとバイナリのファイル(tarとか画像とか)をscpで送受信したらどうなるかと思ってやってみると、コード変換してくれちゃったらしく、案の定壊れました。
ということで、z/OSとの間でファイル転送する場合はftpとか他の仕組みを考えた方がよさそうですね(日本語含まないテキストをさくっとコピーする分には便利ですけど)。

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?