我正在关注 ArchWiki 上的SFTP chroot wiki,发现了一个巨大的障碍:我无法让我的sftponly
用户获得授权。
tail -2 /etc/passwd
(我的 2 个用户)的输出:
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 jail 目录中文件的所有权,因为这是我在广泛的谷歌搜索中读到的内容。我希望两者都chris
能够rick
编辑相同的文件。当我达到我什至可以登录的程度时,我将调查 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 没有任何问题。
我到底错过了什么?
警告:我不是安全专家。我无法确保使用此方法无法通过 ssh 登录,但从我的测试看来,您不能。
关键问题似乎是
/bin/nologin
,事实证明一开始就没有必要。当 sshd 配置了上述设置,并且您的用户被设置为像这样将他们的主目录设置为监狱时,他们无论如何都无法使用 ssh。
chroot
我在jails with上找到的每个教程ssh
,而不是关于chroot
jails 和的教程sftp
,都讨论了设置系统文件夹的必要性,本质上是创建一个系统中的系统。没有它们,似乎无法通过 ssh而不是通过 sftp 登录。所以,按照我上面的指示,但不要将用户的 shell 设置为
/bin/nologin
. 据我所知,这是针对守护程序用户的。此外,使用 ssh-keys 配置所有这些非常容易。只需在共享主目录中拥有一个根拥有的
.ssh/authorized_keys
文件就可以了。使用 ssh-keys 的结果: