如何chroot ssh连接?


20

我想为大多数(不是全部)通过SSH登录的用户设置chroot监狱。我听说过最新版本的openssh是可能的,但是我还没有找到如何做的方法。“如何做”全都在谈论修补旧版本,并且该修补程序不再可用。

我正在运行debian etch。

Answers:


13

我为此使用rssh。

没错,这是一种新方法,它是最新ssh版本的内置功能。

这是一篇关于亡灵的文章。


6

我只需要设置一个可以通过ssh和ssh登录到另一台服务器(未直接连接到外界)的用户。cstamas和ericmayo的联系是一个好的开始。

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

匹配用户myuser
  ChrootDirectory / chroot / myuser

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

Bash立即工作,要使ssh正常工作,我还必须创建.ssh目录,复制/etc/passwd、/etc/nsswitch.conf和/ lib / libnss_ *并创建/ dev / null,/ dev / tty和/ dev / urandom通过mknod。


2
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文件并添加

ChrootDirectory /chroot/%h

并重新启动sshd守护程序。

所有人都说过,老实说,我认为sftp是更好的选择。

另外,我发现了这个网址,如果有帮助的话。

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


1

如果使用公共密钥身份验证,则可以在授权密钥中使用“命令”选项来设置chroot监狱。

〜/ .ssh / authorized_keys:

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

我没有使用公钥身份验证,身份验证是通过密码和用户名完成的
-Malfist

0

据我所知,新版本的OpenSSH仅允许chroot进行SFTP连接。我试过了并且有效。但是对于SSH,可用的解决方案是chrootssh补丁。我浏览了SourceForge网站,没有文件,所以我认为已停产。

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

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


-1对不起,您的答案几年前写的时候是正确的,但现在不再正确。
克里斯·S
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.