逆引きマニュアル: sshd: sftpサーバの設定

投稿日:

やりたいこと

以下を満たすsftpサーバを作成します。

  • 公開鍵認証のみで、パスワード認証は許可しない。
  • 専用のディレクトリのみアクセスさせる(chroot使用)

前提条件

以下が行われていること。

  • ユーザの作成
  • 公開鍵の作成
  • 公開鍵のコピー(ssh-copy-id)

CentOS 7.4で確認しています。

手順

  • ユーザ:
  • ルートディレクトリ1:

パスワード認証を無効化

/etc/ssh/sshd_config最後に、以下の行を追加してください2

Match User {{ user }}
PasswordAuthentication no

Chroot対応

Match User {{ user }}の後のブロックに、以下の設定を追加してください。

ChrootDirectory {{ root }}/{{ user }}
ForceCommand internal-sftp

まとめると以下のようになります3

Match User {{ user }}
    PasswordAuthentication no
    ChrootDirectory {{ root }}/{{ user }}
    ForceCommand internal-sftp

  1. 「ここに到達するまでの上位ディレクトリがすべてroot が所有しており、他のどのユーザやグループも書き込み不可能になっているかどうかチェックします。」のため、ホームディレクトリ以下を指定すると、ややこしい事になります。 [return]
  2. 「Match行にあるすべての条件が満たされた場合、これ以降の設定項目は次のMatch指令が現れるまでグローバルな設定よりも優先されます。」のため。 [return]
  3. 空白によるインデントは見やすくするためです。 [return]

外部サイト

マニュアル