是否可以允许 sshd_config chroot sftp 用户进行基于密钥的身份验证?

是否可以允许 sshd_config chroot sftp 用户进行基于密钥的身份验证?

我正在运行 Ubuntu 12.04.1 LTS(GNU/Linux 3.2.0-30-generic x86_64)服务器,带有 OpenSSH_5.9p1 Debian-5ubuntu1、OpenSSL 1.0.1 2012 年 3 月 14 日。

我想使用 /etc/ssh/sshd_config 中的设置配置 chroot 以进行 sftp 访问,并进行基于密钥的身份验证。

我已按照此处的教程进行操作: http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/

该教程帮助我使用密码身份验证使 sftp 正常工作。我修改了 /etc/ssh/sshd_config 文件并复制了密钥,试图使基于密钥的身份验证正常工作,但到目前为止,还没有成功。

我的 /etc/ssh/sshd_config 文件的相关部分:

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication yes
# Of course, I'd like to change this to no once key-based auth is working


# Commenting for chroot use
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem       sftp    internal-sftp

Match Group sftpusers
        ChrootDirectory /sftp/%u
        ForceCommand internal-sftp
        PubkeyAuthentication yes
        AuthorizedKeysFile     %h/.ssh/authorized_keys

我已将密钥放入 /sftp/testuser/incoming/.ssh/authorized_keys 中,并通过将其放入不同的目录中进行了一些实验。我已确保 authorized_keys 文件的权限为 600,并且 testuser 拥有该文件:

-rw------- 1 testuser sftpusers  616 Sep 21 09:20 authorized_keys

以下是 /etc/passwd 中 testuser 的条目:

testuser:x:1008:1010::/incoming:/usr/lib/openssh/sftp-server

答案1

将您的密钥放在 chroot 之外(无论如何它们在 chroot 之前都会被使用)。例如,将您的密钥放在 /etc/ssh-pool/user.pub 中并更改您的配置:

授权密钥文件 /etc/ssh-pool/%u.pub

相关内容