我怎样才能chroot SSH连接?

我想为大多数(不是全部)用户通过SSHlogin而设置一个chroot jail。 我听说有可能与最新版本的openssh,但我还没有能够find如何做到这一点。 如何所有人都在讨论修补旧版本,并且修补程序不再可用。

我正在运行debian etch。

我正在使用rssh来达到这个目的。

你是对的有一个新的方法来做到这一点,这是最近的ssh版本的内置function。

这是关于不死的文章。

我只需要设置一个用户,这个用户可以通过ssh和sshlogin到另一个服务器(不直接连接到外部世界)。 cstamas和ericmayo的链接是一个好的开始。

基本上,我将以下内容添加到/ etc / ssh / sshd_config中:

匹配用户myuser
   ChrootDirectory / chroot / myuser

从那里开始,我只需要在/ chroot / myuser下创buildchroot环境。 我复制了/ bin / bash和/ usr / bin / ssh以及他们需要的共享库(ldd会显示这些库)。 对于更大的环境,编译所需可执行文件的静态链接版本可能是有意义的。

Bash立刻工作,为了ssh工作,我还必须创build.ssh目录,复制/ etc / passwd,/etc/nsswitch.conf和/ lib / libnss_ *并创build/ dev / null,/ dev / tty和/ dev / urandom通过mknod。

mkdir /chroot mkdir -p /chroot/home/<user_name> mkdir /chroot/home/<user-name>/bin cp -pr /bin/bash /chroot/home/<user_name>/bin/. cp -pr /bin/ls /chroot/home/<user_name>/bin/. cp -pr /lib64 /chroot/home/<user_name>/. 

你必须编辑/ etc / sshd_config文件和addd

 ChrootDirectory /chroot/%h 

并重新启动sshd守护进程。

所有人都说,我真的认为sftp是一个更好的select。

另外,我发现这个url,如果它是有帮助的。

http://www.techrepublic.com/blog/opensource/chroot-users-with-openssh-an-easier-way-to-confine-users-to-their-home-directories/229

如果您正在使用公钥authentication,则可以使用授权密钥中的“command”选项来设置chroot jail。

的〜/ .ssh / authorized_keys中:

 command="/path/to/the/chroot/script" ssh-dss keydata.....keydata... user@host 

据我所知,新版本的OpenSSH只允许用于SFTP连接的chroot。 我试过,它的工作原理。 但是对于SSH,可用的解决scheme是chrootssh补丁。 我浏览SourceForge网站,并没有文件,所以我认为是停止。

对于Debian Etch这里有一些文件: http : //debian.home-dn.net/etch/ssh/

这里还有其他解决scheme: http : //www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.en.html ,包括chrootssh。