どうすれば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
ユーザーをディレクトリにchrootしたい場合は、ディレクトリで実行する必要のあるシェルなどを用意する必要があります。それはあなたのエラーが言っていることです。 Chrootはrootを/ home/userに変更し、/ home/user/bin/bashで/ bin/bash(ユーザーが選択したシェル)を見つけようとしますが、失敗してエラーを報告します。
最初のエラーメッセージ( "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.com と archlinux.org で、同様の質問への参照が他にもいくつか見つかりました(理由の説明については、必ず2番目の質問の一番下までスクロールしてください)。ディレクトリはルート所有である必要があります)。