web-dev-qa-db-ja.com

sftp専用のユーザーを作成するにはどうすればよいですか?

adduserツールを使用してシステムにユーザーを追加しました。次に、/etc/passwd/bin/bash/sbin/nologinまたは/dev/nullに変更しようとしましたが、どちらも機能しませんでした。

対話型のシェルを取得するオプションがなく、sftpを使用するだけのユーザーが欲しいです。方法はありますか?

私はそれが以前ここで尋ねられたことを知っていますが、誰も満足のいく応答をしなかったようです。

15
Toni Rosa

シェルを変更するために使用する必要があるコマンドは chsh です。 nologinシェルは/sbin/nologinまたは/usr/sbin/nologin/etc/shells) だが /bin/falseはおそらくより良い選択でしょう。

chsh -s /bin/false user

scponly のような設定を検討する必要があります。

9
user9517

OpenSSH 4.9以降でこれを行うこともできます。これにより、セキュリティを強化するためにユーザーを追加でchrootできます。

あなたの/etc/ssh/sshd_config

Match User user
ChrootDirectory /home/user
ForceCommand internal-sftp
AllowTcpForwarding no

次に実行します:

chsh -s /bin/false user
chown root:root /home/user
mkdir /home/user/uploads
chown user /home/user/uploads

ユーザーは/ home/user/uploadsにのみ書き込むことができます。

https://debian-administration.org/article/590/OpenSSH_SFTP_chroot_with_ChrootDirectory

9
Eduardo Ivanec

最善の方法は、mysecureshellを使用することです

http://mysecureshell.sourceforge.net/en/index.html

これでユーザーを簡単にchrootでき、必要に応じて帯域幅を制限することもできます。

2
Mike

-s /bin/falseを使用してユーザーを追加してシェルを無効にすることができますが、実際に設定する必要があるのはchrootされたsftpアカウントです。これにより、ユーザーは自分のディレクトリに「投獄」され、chrootディレクトリ外のファイルやディレクトリにアクセスしたり変更したりできなくなります。

1
gravyface