ユーザーをchrootできません。 [重複]

ユーザーをchrootできません。 [重複]

私のSSHサーバーは4年間うまくいったので、ユーザーを追加して特定のフォルダにchrootを割り当てたいと思います。

> useradd -m -c /home/thomas -s /bin/sh thomas
> passwd thomas
> chmod 755 /home/thomas
> chown root: /home/thomas
> service ssh restart

私がこれをするとき、私はできる接続が進み、ssh接続sftpが機能します。問題は、特定のフォルダにルートを指定したいということです。

> vim /etc/ssh/sshd_config

ファイルの末尾に以下を追加します。

Match user thomas
    ChrootDirectory /home/%u

これだけ追加すれば何も変わらないでしょう?設定は同じで、sftpに接続または使用できる必要があります。だから再起動し、service ssh restartsftpに接続できなくなりました。

もし:

root@xx:/etc/nginx/sites-enabled# /usr/sbin/sshd -v
sshd: illegal option -- v
OpenSSH_6.0p1 Debian-4+deb7u6, OpenSSL 1.0.1t  3 May 2016
usage: sshd [-46DdeiqTt] [-b bits] [-C connection_spec] [-c host_cert_file]
            [-f config_file] [-g login_grace_time] [-h host_key_file]
            [-k key_gen_time] [-o option] [-p port] [-u len]
root@xx:/etc/nginx/sites-enabled#

私は何が間違っていましたか?

ベストアンサー1

このマニュアルsshd_configには次の内容が記載されています。

ChrootDirectoryユーザーセッションをサポートするために必要なファイルとディレクトリを含める必要があります。対話型セッションでは、少なくともシェル(通常は)sh(1)とプライマリ/devノード(たとえば、、、、null(4)およびデバイス)zero(4)が必要です。SFTPを使用するファイル転送セッションの場合、in-process sftpサーバーを使用している場合は追加の環境設定は必要ありませんが、ロギングを使用するセッションには一部のオペレーティングシステムでchrootディレクトリが必要になる場合があります(参考文献を参照)。stdin(4)stdout(4)stderr(4)tty(4)/dev/logsftp-server(8)

devこのディレクトリを作成し、/dev/MAKEDEVそこにスクリプトをコピーする必要があります。スクリプトを使用して必要なデバイスファイルを作成します。

対話型ユーザーの場合は、chrootに必要なバイナリと関連ライブラリもインストールする必要があります。

「in-process sftp server」への参照は、そのForceCommand internal-sftpサーバーをブロックで使用する必要があることを意味しますMatch

注:この抜粋はOpenSSH 7.5からの抜粋です。これは、以前のSSH実装へのアクセス権がないためです。

おすすめ記事