概要
SFTPGoというサーバーソフトウェアで、sftpだけのサービスを作ります
インストール
いろんな環境でインストールできます
詳細は下記ページ参照
Installation - SFTPGo documentation
Ubuntu
sudo add-apt-repository ppa:sftpgo/sftpgo
sudo apt update
sudo apt install sftpgo
RHEL系
ARCH=`uname -m`
curl -sS https://ftp.osuosl.org/pub/sftpgo/yum/${ARCH}/sftpgo.repo | sudo tee /etc/yum.repos.d/sftpgo.repo
sudo yum update
sudo yum install sftpgo
sudo systemctl start sftpgo
sudo systemctl enable sftpgo
Windows
githubから「sftpgo_*_windows_x86_64.exe」をダウンロードしてインストールする
https://github.com/drakkan/sftpgo/releases
macOS
brew install sftpgo
設定
1. Web管理画面
設定はWeb管理画面からポチポチやればよいです
sshやsftpの知識があれば余裕だと思います
OS上には存在しない仮想ユーザーを設定することができます
2. 設定ファイル
設定ファイルで設定することもできます
インストール先の「etc/sftpgo.json」ファイルが設定ファイルで、JSON形式です
接続してみる
デフォルトではsftpの待ち受けポートは2022番ポートです
OpenSSH側と衝突しないようにすれば22番ポートで待ち受けるようにできます
sftp接続
sftp user@localhost
Connected to 127.0.0.1.
sftp> ls
sftp> pwd
Remote working directory: /
sftp> mkdir foo
sftp> ls
foo
sftp> cd foo
sftp> quit
素のsshでアクセスしてみてどんな動きになるか確かめることもできます
sshで接続
ssh user@localhost
おわりに
SFTPGoを使うことで、過剰な権限を与える心配なくsftpサーバーを構築することができるようになりました
OSとは切り離された仮想ユーザーを設定できるのもポイント高いと思います