设置 sftp chroot 监狱时遇到问题

设置 sftp chroot 监狱时遇到问题

我正在关注SFTP chroot在 ArchWiki 上查看 wiki 并发现一个巨大的障碍:我无法让我的sftponly用户获得授权。

(我的 2 个用户)的输出tail -2 /etc/passwd

chris:x:1001:1002::/home/jail:/usr/bin/nologin
rick:x:1002:1002::/home/jail:/usr/bin/nologin

groups chris和的输出groups rick

sftponly

目录:

$ ls -l /home
total 24
drwxr-xr-x 3 root  root   4096 Jan  9 16:12 jail/

$ ls -l /home/jail
total 4
drwxrwxr-x 3 rick sftponly 4096 Jan  9 16:12 dropbox/

笔记dropbox/:该目录拥有的唯一原因rick是因为我正在尝试更改 chroot 监狱目录中文件的所有权,因为这是我在广泛的谷歌搜索中读到的内容。我希望两者chrisrick能够编辑相同的文件。当我什至可以登录时,我将调查 facl 权限。

中的相关部分/etc/ssh/sshd_config

Subsystem sftp /usr/lib/ssh/sftp-server

Match Group sftponly
  ChrootDirectory %h
  ForceCommand internal-sftp
  AllowTcpForwarding no
  X11Forwarding no
  PasswordAuthentication yes

当我尝试登录sftp rick@localhost并输入密码时,从日志中:

Jan 09 16:44:17 dell-dropbox sshd[688]: Failed password for rick from ::1 port 57410 ssh2
Jan 09 16:44:23 dell-dropbox sshd[688]: Failed password for rick from ::1 port 57410 ssh2
Jan 09 16:44:28 dell-dropbox sshd[688]: Failed password for rick from ::1 port 57410 ssh2
Jan 09 16:44:29 dell-dropbox sshd[688]: Connection closed by authenticating user rick ::1 port 57410 [preauth]

笔记: 他们都设置了密码。我输入的密码正确。我可以以我自己的身份通过 sftp 登录,没有任何问题。

我到底错过了什么?

答案1

警告:我不是安全专家。我无法确保使用此方法无法通过 ssh 登录,但从我的测试来看似乎不能。

关键问题似乎是/bin/nologin,但事实证明这从一开始就是不必要的。

当使用上述设置配置 sshd 时,并且您的用户将其主目录设置为监狱,那么他们无论如何都无法进行 ssh。我找到的关于chroot监狱的每个教程ssh,而不是关于chroot监狱和的教程sftp,都讨论了设置系统文件夹的必要性,本质上是创建一个系统中的系统。没有它们似乎无法通过 ssh 登录但不是通过 sftp。

因此,请按照我上面的指示进行操作,但不要将用户的 shell 设置为/bin/nologin.据我所知,这是针对守护进程用户的。

此外,使用 ssh-keys 配置所有这些都非常容易。只需.ssh/authorized_keys在共享主目录中拥有一个 root 拥有的文件就可以了。

ssh-keys 的结果:

~ » ssh chriss@localhost                                                                                                                                                   
Enter passphrase for key '/home/malan/.ssh/id_rsa':
This service allows sftp connections only.
Connection to localhost closed.

相关内容