みなさんこんにちは。

scponlyc が使えなくなっておりまして困っています。

どなたかお力をお貸しいただけましたら幸いです。

環境は
サーバ FreeBSD 6.2-RELEASE-p7
クライアント WindowsXP + WinSCP 4.0.4
です。

FreeBSDはインストール直後の状態からsshの設定を行い
scponly をインストールしました。
インストール後に
# cd /usr/local/share/examples/scponly
# ./setup_chroot.sh

こんな感じでユーザーを作成しました(以下は抜粋です)。
-en Username to install [scponly]
hoge
-en home directory you wish to set for this user [/home/ibaraki]
/usr/data/hoge
-en name of the writeable subdirectory [incoming]
                                ←空のままエンター

creating  /usr/data/hoge directory for uploading files

この状態で WinSCP で SFTP でアクセスすると

Cannot initialize SFTP protocol. Is the host running SFTP server?
Connection has been unwxpectedly closed. Server sent command exit status 1.

というエラーが出て接続されません。


以下は試した手順です
まず、scponly の再インストール

# rm /var/db/ports/scponly/options
# cd /usr/ports/shells/scponly
# make install

# This file is auto-generated by 'make config'.
# No user-servicable parts inside!
# Options for scponly-4.6_2
_OPTIONS_READ=scponly-4.6_2
WITHOUT_SCPONLY_WILDCARDS=true
WITHOUT_SCPONLY_GFTP=true
WITH_SCPONLY_CHROOT=true
WITH_SCPONLY_RSYNC=true
WITHOUT_SCPONLY_SCP=true
WITH_SCPONLY_SFTP_LOGGING=true
WITHOUT_SCPONLY_SVN=true
WITHOUT_SCPONLY_SVNSERVE=true
WITHOUT_SCPONLY_UNISON=true
WITH_SCPONLY_WINSCP=true

上記のオプションを付けたり外したり( make config )して様子をみてみました。

しかし結果は全て同じく
Cannot initialize SFTP protocol. Is the host running SFTP server?
Connection has been unwxpectedly closed. Server sent command exit status 1.
という表示がでてきてしまいます。

SFTPサーバに何か問題があるようだと思い
/etc/ssh/sshd_config の最後の方に

# override default of no subsystems
Subsystem       sftp    /usr/libexec/sftp-server

があるため、もしかして chroot 環境で sftp-server が使えないのかと思い
/usr/data/hoge/usr/libexec/ に sftp-server をコピーしましたが
結果は同じ。もしかしてライブラリが無いため起動できないのかと思い
# ldd /usr/libexec/sftp-server
/usr/libexec/sftp-server:
        libssh.so.3 => /usr/lib/libssh.so.3 (0x2807e000)
        libcrypt.so.3 => /lib/libcrypt.so.3 (0x280b3000)
        libcrypto.so.4 => /lib/libcrypto.so.4 (0x280cb000)
        libz.so.3 => /lib/libz.so.3 (0x281be000)
        libc.so.6 => /lib/libc.so.6 (0x281cf000)
        libgssapi.so.8 => /usr/lib/libgssapi.so.8 (0x282b4000)
        libkrb5.so.8 => /usr/lib/libkrb5.so.8 (0x282c2000)
        libasn1.so.8 => /usr/lib/libasn1.so.8 (0x282f6000)
        libcom_err.so.3 => /usr/lib/libcom_err.so.3 (0x28317000)
        libroken.so.8 => /usr/lib/libroken.so.8 (0x28319000)
        libmd.so.3 => /lib/libmd.so.3 (0x28325000)

表示されたライブラリを全て /usr/data/hoge/lib /usr/data/hoge/usr/lib
にコピーしましたがやはり結果は同じ。

もしかして問題は sftp では無くシェルにあるのではないかと思いまして
別の tcsh のシェルで起動するアカウント foo でsftpでログオンを試みると
問題なく接続できました。

scponlycの問題ならシェルを変えればログオンできるはずなので
vipw を使い hoge のシェルを /usr/local/sbin/scponlyc から
/usr/local/bin/scponly
に変更しました。するとやはり全く問題なくログオンできました。
しかし tcsh や scponly だと chroot 環境になりません。

scponlyc になんらかの問題があるらしいのですが・・・

他に設定するところ、やらなければならない事などありましたら
ご教示頂けたらと思います。


--------------------------------------
Easy + Joy + Powerful = Yahoo! Bookmarks x Toolbar
http://pr.mail.yahoo.co.jp/toolbar/

メールによる返信