web-dev-qa-db-ja.com

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

どうすればsshユーザーをホームディレクトリにchrootできますか?

これは私が私の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
2
Soban

ユーザーをディレクトリにchrootしたい場合は、ディレクトリで実行する必要のあるシェルなどを用意する必要があります。それはあなたのエラーが言っていることです。 Chrootはrootを/ home/userに変更し、/ home/user/bin/bashで/ bin/bash(ユーザーが選択したシェル)を見つけようとしますが、失敗してエラーを報告します。

2
Mikhail Krutov

最初のエラーメッセージ( "Could not chdir...")は、_sshd_config_のChrootDirectoryから送信されます。ドキュメントから:

ChrootDirectory

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

chrootを試行した後は、bashが見つからないという問題が発生したときです。これは、chroot環境全体がセットアップされていないことに関連しています(chroot(2)のドキュメントを参照してください)。

ユーザーのインタラクティブ環境を(chrootだけでなく)sftp'dにしたい場合は、やるべきことがたくさんあります。最終的な目標によっては、代わりに制限付きシェルを使用することもできます(bash(1)vim(1)を確認し、「制限付き」を検索して、設定方法のアイデアを見つけてください。 )。

askubuntu.comarchlinux.org で、同様の質問への参照が他にもいくつか見つかりました(理由の説明については、必ず2番目の質問の一番下までスクロールしてください)。ディレクトリはルート所有である必要があります)。

2
Azhrei