Coloque suas chaves fora do chroot (elas são usadas antes de chroot de qualquer jeito). Por exemplo, coloque suas chaves em /etc/ssh-pool/user.pub e mude sua configuração:
AuthorizedKeysFile /etc/ssh-pool/%u.pub
Estou rodando um servidor Ubuntu 12.04.1 LTS (GNU / Linux 3.2.0-30-genérico x86_64), com OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 de março de 2012.
Eu gostaria de configurar o chroot para acesso sftp usando configurações em / etc / ssh / sshd_config, com autenticação baseada em chave.
Eu segui o tutorial aqui: link
Esse tutorial me ajudou a fazer com que o sftp funcionasse com autenticação de senha. Eu modifiquei o arquivo / etc / ssh / sshd_config e copiei as chaves para tentar fazer com que a autenticação baseada em chave funcionasse, mas até agora, sem sorte.
Partes relevantes do meu arquivo / 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
Coloquei a chave em /sftp/testuser/incoming/.ssh/authorized_keys e experimentei um pouco colocando-a em diretórios diferentes. Eu assegurei que os direitos são 600 no arquivo authorized_keys e que o testuser possui:
-rw------- 1 testuser sftpusers 616 Sep 21 09:20 authorized_keys
Aqui está a entrada em / etc / passwd para o testuser:
testuser:x:1008:1010::/incoming:/usr/lib/openssh/sftp-server
Coloque suas chaves fora do chroot (elas são usadas antes de chroot de qualquer jeito). Por exemplo, coloque suas chaves em /etc/ssh-pool/user.pub e mude sua configuração:
AuthorizedKeysFile /etc/ssh-pool/%u.pub