sshのsftpで日本語ファイル名を扱う
玄箱の設定・管理はsshでログインして行っています。ファイルの転送にはsftpかscpを使っています。
ファイルの転送時に困るのはWindowsから転送すると日本語のファイル名が文字化けして正しく転送されないことです。
ファイルの転送時に困るのはWindowsから転送すると日本語のファイル名が文字化けして正しく転送されないことです。
文字コードの違いから仕方がないとあきらめていたのですが、sftp-server SJISパッチなるものを見つけました。
インストール
おいてあるパッチはOpenSSH 3.7.1p2 用 SJISパッチが最新のもので、使用中のsshdとバージョンが違うのが気になりましたが、とにかく実行してみました。
# cat /usr/share/doc/ssh/README <- バージョンの確認
See http://www.openssh.com/txt/release-3.8.1 for the release notes.
- A Japanese translation of this document and of the OpenSSH FAQ is
- available at http://www.unixuser.org/~haruyama/security/openssh/index.html
- Thanks to HARUYAMA Seigo <haruyama@unixuser.org>
.
.
.
# apt-get install zlib1g-dev <- コンパイルに必要
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
zlib1g-dev
0 packages upgraded, 1 newly installed, 0 to remove and 42 not upgraded.
Need to get 523kB of archives. After unpacking 700kB will be used.
Get:1 http://security.debian.org stable/updates/main zlib1g-dev 1:1.2.2-4.sarge.2 [523kB]
Fetched 523kB in 4s (124kB/s)
Selecting previously deselected package zlib1g-dev.
(Reading database ... 19208 files and directories currently installed.)
Unpacking zlib1g-dev (from .../zlib1g-dev_1%3a1.2.2-4.sarge.2_powerpc.deb) ...
Setting up zlib1g-dev (1.2.2-4.sarge.2) ...
# apt-get install libssl-dev <- コンパイルに必要
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
libssl-dev
0 packages upgraded, 1 newly installed, 0 to remove and 42 not upgraded.
Need to get 2774kB of archives. After unpacking 7582kB will be used.
Get:1 ftp://ftp.dti.ad.jp stable/main libssl-dev 0.9.7e-3 [2774kB]
Fetched 2774kB in 3s (715kB/s)
Selecting previously deselected package libssl-dev.
(Reading database ... 19224 files and directories currently installed.)
Unpacking libssl-dev (from .../libssl-dev_0.9.7e-3_powerpc.deb) ...
Setting up libssl-dev (0.9.7e-3) ...
# wget http://www.hakusan.tsg.ne.jp/tjkawa/software/misc/sftp-sjis/pack/openssh-3.7.1p2-sjis.patch.gz <- パッチのダウンロード
# wget http://mirror.mcs.anl.gov/openssh/portable/openssh-3.8.1p1.tar.gz <- ソースファイルのダウンロード
# gzip -d openssh-3.7.1p2-sjis.patch.gz
# tar zxf openssh-3.8.1p1.tar.gz
# cd openssh-3.8.1p1
# patch < ../openssh-3.7.1p2-sjis.patch
# ./configure
# make sftp-server
# mv /usr/lib/sftp-server /usr/lib/sftp-server.old
# cp ./sftp-server /usr/lib/sftp-server
以上でインストール完了です。
クライアント
現在使用しているクライアントはWinSCPです。玄箱は文字コードとしてEUCを採用しているので上記パッチで問題なく使えます。ただし、sftpモードで使ってください。
また、FileZillaとFilezilla ファイル名 EUC<->SJIS 変換パッチを使えばサーバにパッチを当てなくてもクライアント側だけで対応できるようです。

Comments
http://r-af.com/?tn
こちらにご参加頂ければと思いトラックバックしました。まだ登録がない為、今が狙い目です。宜しくお願い致します。