みなさんこんにちは。
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/