Eu entendi!
Seguindo as instruções neste site: link
Como root, criei uma pasta separada em:
/usr/local/share/keys/globocorp/.ssh/
Esta pasta é de propriedade de root, permissões definidas como "755"
O arquivo authorized_keys está nesta pasta e pertence ao usuário, com as permissões definidas para 600.
sshd_config contém esta linha:
AuthorizedKeysFile /usr/local/share/keys/%u/.ssh/authorized_keys
E este bloco de correspondência:
Match user globocorp
ChrootDirectory /sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp -l VERBOSE -f LOCAL6
PubkeyAuthentication yes
PasswordAuthentication yes
Então, em conclusão:
As authorized_keys de um usuário chrooted PODEM estar em um local do qual o usuário é rooteado. Isso ocorre porque o chroot não é processado até depois do login. As permissões devem ser EXATAMENTE conforme descrito acima - nenhuma outra permissão funcionou. (Não 700 no diretório pai)
Os caminhos definidos em sshd_config são absolutos (/ = o / do servidor, não o chroot do usuário!)
Para depurar isso, usei este comando para executar o sshd em uma porta separada (23) e não interromper as sessões existentes:
/usr/sbin/sshd -d -p 23
E, em seguida, tentou se conectar via SFTP de um servidor remoto. Isso fez com que o servidor emitisse mensagens de depuração úteis que explicavam claramente o que estava acontecendo nas minhas tentativas de login.