LoginSignup
2
1

More than 1 year has passed since last update.

SFTPは禁止して、SSHは許可する

Last updated at Posted at 2022-03-14

sshd_config編集

以下、CentOS 7 x86_64系が前提になります。

# override default of no subsystems
#以下、コメントアウト
#Subsystem sftp /usr/libexec/openssh/sftp-server
#sshd再起動
systemctl restart sshd
systemctl status sshd
# 今回は、FTPクライアントソフトでSFTPできないことを確認。
# 以下、エラーメッセージ
状態:Using username "Linux User". 
状態:Connected to ”IP or Host”
エラー:FATAL ERROR: Received unexpected end-of-file from SFTP server
エラー:サーバーに接続できません
エラー:FATAL ERROR: Remote side unexpectedly closed network connection
# SSHはできることを確認。
ssh -i "Pemファイル" "Linux User"@IP or Host

どうやら、以下の行で管理ができる模様。
時間が出来次第、仕組みを調べてみたい。

Subsystem sftp /usr/libexec/openssh/sftp-server

2022/03/27追記

コメントをいただき、以下追記です。
全く頭になかった発想、考え方でした。非常に参考になります。ありがとうございます。m(_ _)m(コメント欄参照)


シェルが起動出来る時点で様々な事が出来るため、SFTPだけ禁止してもほとんど意味が無い。
それでも禁止したい場合、上記設定だけだと以下のようにすればSFTP出来てしまう。

## subsystemではなくexecでsftp-serverを起動するという方法
sftp -s /usr/libexec/openssh/sftp-server user@hostname

この方法はsftpのman pageにも「sshdでsftp subsystemが設定されていない時に使える」として書かれている。

なので、sftp-serverの読み込み権/実行権も落とす方がいい(もしくは削除する)

chmod 0 /usr/libexec/openssh/sftp-server

参考

参考にさせていただきました。ありがとうございます。

2
1
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1