認証キーは通常、HOMEディレクトリの.sshの下にあります。
のように非標準的な場所に置きたいです。/etc/AK/authorized_keys.archemar
一致ルールを使用してsshd_configを設定しました。
Match user archemar
ChrootDirectory /exploit/X25
AuthorizedKeysFile /etc/AK/authorized_keys.%u
PasswordAuthentication no
ForceCommand internal-sftp -u 0002
PubkeyAuthentication yes
ただし、パスワードなしでログインできず、sshdはエラーを報告します。
sshd[] Failed publickey for archemar from ... port 41154 ssh2: RSA SHA256:...
コマンドはsftp
次のいずれかです。ssh
sftp -i archemar archemar@localhost
ssh -i archemar -l archemar localhost
Authorized_keysが一般的な場所にある場合、公開鍵は正しく機能します。
ファイル承認は
-rw-r--r-- 1 root root 802 Oct 24 10:51 authorized_keys.archemar
ディレクトリ/etc/AK
はdrwx------
私は何を見逃していますか?これはchroot
問題ですか?
- オペレーティングシステムはSuse 12.4であり、
- セクションを最後に入れて
sshd_config
再起動しましたが、 - selinuxが無効になっています。
答え1
sshdが課す権限の期待に従う必要があります。
公開鍵を持つディレクトリは、少なくとも誰でも実行できる必要があります。
chmod 711 /etc/AK chown root:root /etc/AK
公開鍵はそのユーザーが所有する必要があり、次の権限が私にとって効果的でした。
chown archemar:root /etc/AK/authorized_keys.archemar chmod 640 /etc/AK/authorized_keys.archemar