SSH

内容

  • SSHさせずにSFTPのみを許可して、ホームディレクトリ以上にあがらないようにする

手順

# cd /etc/sshd
# cp -p sshd_config sshd_config.`date +%Y%m%d`
# vi sshd_config
---
#Subsystem	sftp	/usr/libexec/openssh/sftp-server
Subsystem       sftp    internal-sftp

※下記項目はAllowUsersより下に記述する。
Match User hogeuser
     ChrootDirectory ~
     ForceCommand internal-sftp
# /usr/sbin/sshd -t
# service sshd restart

2016/1/12追記

※上記のみでは「packet_write_wait: Connection to 接続先: Broken pipe」と表示されてsftp接続できない可能性があります。
sftpの仕様上上位ディレクトリの所有者と所有グループがrootになっている必要があるためです。
この場合、1つroot所有者&root所有グループでディレクトリを作成し、その配下にchrootさせたいユーザーが読み書き可能なディレクトリを作成することでchrootを実現できます。

# useradd chrootするユーザー
# passwd chrootするユーザー
# mkdir /対象パス/tmpdir/ftpdata
# usermod -d /対象パス/tmpdir/ chrootするユーザー名
# chown root:chrootするユーザー名
# chmod -R 750 tmpdir
# chown chrootするユーザー名:chrootするユーザー名 /対象パス/tmpdir/ftpdata

この場合、chrootさせたいユーザーが操作可能な範囲は、tmpdir/ftpdata/配下のみとなります。

参考URL

http://askubuntu.com/questions/49271/how-to-setup-a-sftp-server-with-users-chrooted-in-their-home-directories


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-06-30 (木) 01:40:11