Chroot'ed sftp

Today I made our new server at work only let some people to use sftp on login, and made sftp-server chroot before running. This was on a RedHat 8.0 box.

First I downloaded the openssh source, using apt with the command sudo apt-get source openssh. Then I tried to run rpm -ba /usr/src/redhat/SPECS/openssh.spec, but of course that didn’t. After much poking around on google I found that rpmbuild -ba would do the trick. That of course failed half way thur, but I did poke into the openssh.spec file and found out what options it passed to ./configure. I unpacked the tarball myself, then ran ./configure with the right options. Then I applied the sftp-chroot.diff patch and did make sftp-server. I copied that file to /usr/libexec/openssh/sftp-server-chroot, and did chmod +s /usr/libexec/openssh/sftp-server-chroot.

Then I edited /etc/passwd and added the magic chars “/.” to the users path, and changed their shell to /usr/libexec/openssh/sftp-server-chroot. And it worked.