はじめに
これも備忘録。
OpenSSH で SFTP をさせたい場合のやり方。
ssh での接続は許可せず、sftp でのみ接続するユーザを作るのがゴール。
まず sftp 専用グループを作成。
groupadd sftponly
次に sftp 接続ユーザを作成。
サブグループで sftp 専用グループを指定、ログインシェルは nologin
を指定する。
useradd -G sftponly -s /sbin/nologin sftpuser
上記で作成したユーザのパスワードを設定。
passwd sftpuser
作成したユーザのホームディレクトリにある bash 関連のドットファイルを削除する。
cd /home/sftpuser
rm -f .bash_logout .bash_profile .bashrc
sftp ユーザのホームディレクトリの権限を変更する。
cd /home
chown root. sftpuser/
chmod 755 sftpuser/
ホームディレクトリ直下にはファイルを保存できない(させない)よう、ホームディレクトリ内に任意のディレクトリを作成し、所有者を sftp 接続ユーザにする。
cd /home/sftpuser
mkdir sftpuser/
chown sftpuser. sftpuser/
sshd_config
の最終行あたりに追記する。
/etc/ssh/sshd_config
~ 中略 ~
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
最後に sshd の設定を反映する。
systemctl reload sshd
仲間募集中
弊社ではエンジニアを募集中です。インフラからアプリ、ユーザサポートまで幅広く業務を行ってます。
https://www.nittsu-infosys.com/recruit/2019/index.html