chroot sshユーザーをホームディレクトリにする

chroot sshユーザーをホームディレクトリにする

SSHユーザーはホームディレクトリにどのようにルートを移動しますか?

これはsshd_configファイルで設定したものです:

ChrootDirectory %h

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

SSHバージョンは6.6.1です。

ログインしようとしたときに表示されるエラーは次のとおりです。

Could not chdir to home directory /home/user: No such file or directory

/bin/bash: no such file or directory

答え1

ユーザーを自分のディレクトリにchrootするには、シェルとディレクトリで実行するために必要なすべてが必要です。これはあなたのエラーが言うものです。 Chrootはrootを/home/userに変更し、/home/user/bin/bashで/bin/bash(ユーザーが選択したシェル)を見つけようとしますが、エラーが発生して失敗します。

答え2

最初のエラーメッセージ(「chdir...できません」)は次のように表示されます。Chroot ディレクトリあなたのsshd_config。ドキュメントから:

Chroot ディレクトリ

chroot(2)認証後のディレクトリパス名を指定します。パス名のすべてのコンポーネントは、ルートが所有するディレクトリでなければならず、他のユーザーやグループが書き込めないようにする必要があります。ルートを変更したら、sshd(8)作業ディレクトリをユーザーのホームディレクトリに変更します。

後ろにchrootを試みると見つかりませんでしたbash。これは完全なchroot設定がないことに関連しています(ドキュメントを参照chroot(2))。

ユーザーの対話コンテキストをchroot「d」(単純な「d」ではないsftp)として指定するには、多くのことが必要です。最終目標によっては、単に制限されたシェルを使用したい場合があります(設定方法のアイデアを見つけるには、「restricted」を確認してbash(1)検索してください)。vim(1)

他の同様の質問への参照が見つかりました。askubuntu.comなど。Archlinux.org(なぜこのディレクトリをルートが所有するのかについては、2番目のディレクトリの一番下までスクロールしてください。)

関連情報