GeekFactory

int128.hatenablog.com

sshを制限してsftpだけ許可する

ファイル転送用のアカウントでは、sshを制限してsftpのみ許可したい場合があります。ログインシェルを/sbin/nologinに変更すると、sshだけでなくsftpも制限されてしまいます。そのような場合はsshd_configのForceCommandを使います。

例えば、

# /etc/ssh/sshd_config
#...

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

Match User hoge
       ForceCommand /usr/lib64/misc/sftp-server

と書くと、ユーザhogeはsftpしか使えなくなります。sshクライアントから接続しようとしても、セッションがsftp-serverに流れるのでbashは使えません。