SCP、SFTP 転送は許可したいけれどターミナルの操作はさせたくない、という要件があり rssh を試してみた。
SRPMからのリビルドとなるので、あらかじめ gcc や rpmbuild をインストールしておくこと。
※ OS インストール時に「開発ツール」を選択していればインストールされていると思います。
$ yum -y install rpm-build
$ cd /usr/local/src/ $ wget http://jaist.dl.sourceforge.net/project/rssh/rssh/2.3.3/rssh-2.3.3-1.src.rpm # リビルドしてインストール $ rpmbuild --rebuild rssh-2.3.3-1.src.rpm $ rpm -ivh ~/rpmbuild/RPMS/i686/rssh-2.3.3-1.i686.rpm
/etc/shells に rssh を追加します。
vi /etc/shells
/bin/sh /bin/bash /sbin/nologin /usr/bin/rssh
続いて rssh に許可する接続を設定します。
vi /etc/rssh.conf
allowscp # scp を許可 allowsftp # sftp を許可 #allowcvs #allowrdist allowrsync # rsync を許可
これで rssh の設定が出来ました。
確認のため 「rssher」というユーザを追加してみます。
# シェルを rssh に設定 $ useradd rssher -s /usr/bin/rssh # ログインパスワードを設定 $ passwd rssher ユーザー rssher のパスワードを変更。 新しいパスワード: 新しいパスワードを再入力してください: passwd: 全ての認証トークンが正しく更新できました。 $
rssher ユーザで SSHログインしようとすると。
$ ssh rssher@localhost rssher@localhost's password: Last login: Thu Aug 9 15:33:20 2012 from 192.168.*.* This account is restricted by rssh. Allowed commands: scp sftp rsync If you believe this is in error, please contact your system administrator. Connection to localhost closed.
ssh 接続が制限されていることがわかります。
sftp や scp は問題無く接続できます。
# sftp で localhost へログイン $ sftp rssher@localhost Connecting to localhost... rssher@localhost's password: sftp> sftp> quit # scp ファイル転送 $ scp /tmp/test rssher@localhost:~ rssher@localhost's password: test 100% 0 0.0KB/s 00:00