Na verdade, não acho que o que você está pedindo seja possível.
Do manual do sshd_config:
ChrootDirectory
Specifies the pathname of a directory to chroot(2) to after
authentication. At session startup sshd(8) checks that all
components of the pathname are root-owned directories which are
not writable by any other user or group. After the chroot,
sshd(8) changes the working directory to the user's home
directory.
Portanto, para que o chroot funcione, o diretório deve ser de propriedade da raiz. É por isso que não funciona quando você altera o proprietário de / home / sftp_user.
Por outro lado, quando o dono está correto, o chroot funciona, mas você está tentando acessar um caminho (seu diretório pessoal) que está fora do chroot. Se você quiser que isso funcione, você precisará criar a pasta home dentro do chroot. Então, se você for chrooted para / home / sftp_user, será necessário criar / home / sftp_user / home / sftp_user.
Ao conectar, não há como o sshd dizer se você quer fazer "ssh" ou "sftp". Então você precisará diferenciar usando algum outro método. Talvez uma conta específica do sftp ou algo assim.