gpt4 book ai didi

sftp - 如何将 ProFTPD 配置为具有系统用户、PK 身份验证和自定义 umask 的仅 SFTP 服务器?

转载 作者:行者123 更新时间:2023-12-03 14:17:08 28 4
gpt4 key购买 nike

因此,我设法配置 ProFTPD 以允许系统用户使用密码登录。我有两个问题:umaskpk auth

Include /etc/proftpd/modules.conf

UseIPv6 on
ServerName "Debian"
ServerType standalone
MultilineRFC2228 on
DefaultServer on
Port 21
PassivePorts 49152 49407
MaxInstances 30
SystemLog /var/log/proftpd/proftpd.log

<IfModule mod_ctrls.c>
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
</IfModule>

<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>

<Global>
UseFtpUsers on
IdentLookups off
DeferWelcome off
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
DefaultRoot ~
RequireValidShell off
User proftpd
Group nogroup
Umask 007 007
AllowOverwrite on
# AuthOrder mod_sql.c
CreateHome on
TransferLog /var/log/proftpd/xferlog

<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>

<IfModule mod_ratio.c>
Ratios off
</IfModule>

<IfModule mod_delay.c>
DelayEngine on
</IfModule>

<IfModule mod_xfer.c>
MaxStoreFileSize 70 Mb
HiddenStores on
DeleteAbortedStores on
</IfModule mod_xfer.c>

<Directory /htdocs/*/>
Umask 0007
<Limit MKD XMKD RMD XRMD SITE_CHMOD>
DenyUser !ftpadmin
</Limit>
</Directory>
</Global>

Include /etc/proftpd/sftp.conf

sftp.conf如下

<IfModule mod_sftp.c>
<VirtualHost $(hostname)>
Port 23
SFTPEngine on
SFTPAuthorizedUserKeys file:/home/%u/.ssh/authorized_keys
SFTPHostKey /etc/ssh/ssh_host_dsa_key
SFTPHostKey /etc/ssh/ssh_host_rsa_key
SFTPHostKey /etc/ssh/ssh_host_ecdsa_key
SFTPCompression delayed
SFTPLog /var/log/proftpd/sftp.log
</VirtualHost>
</IfModule mod_sftp.c>

[umask] 但是,当用户登录并放置文件时,上传的文件会获得它最初拥有的权限(我正在使用 OS X 进行测试和 Linux 作为客户端,所以这是有道理的)。我没有测试纯 FTP 解决方案,但我宁愿提供 SFTP。

[pk auth] 当我尝试 PK 身份验证时,客户端正确地提供了正确的 key ,并说

debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 535
debug2: input_userauth_pk_ok: fp SHA256:Eft1LIOozSylL20lfMc9gUdl3gKtd0zEdeyNtCb1p8Q

然后结束

debug1: Authentications that can continue: password

这让我很困惑。在服务器端,我有

no account for user 'sftpuser' found
sending userauth failure; remaining userauth methods: password

这很有趣,因为用户确实存在(并且可以成功执行密码登录)。我什至将我的 OpenSSH key 转换为 ProFTPD 似乎更喜欢的 RFC4716 格式。

我承认我总共有大约 4 小时的 ProFTPD 经验,但我一直在阅读所有可能的内容,并且配置文件对我来说很有意义。这一切都在 Docker 容器中运行。我错过了什么?

最佳答案

与 FTP 不同,SFTP 上传通常包含它们自己的权限作为 SFTP OPEN 请求的一部分。要使 SFTP 上传更像 FTP 上传,关于 ProFTPD 配置(例如 Umask),您需要将 mod_sftp 配置为 使用 IgnoreSFTPUploadPerms 忽略上传权限 SFTPOptions :

<IfModule mod_sftp.c>
...
SFTPOptions IgnoreSFTPUploadPerms
...
</IfModule>

对于公钥身份验证问题,您配置的SFTPLog 应该有更多关于可能是什么问题的线索。也许配置的文件不存在,或者没有必要的权限?请记住,OpenSSH 经常使用 ~/.ssh/authorized_keys并且该文件的格式与 ProFTPD 所需的格式不同。因此,我经常使用:

SFTPAuthorizedUserKeys file:~/.sftp/authorized_keys

一个与 OpenSSH 想要的不同的文件,采用不同的格式 (RFC 4716),以避免任何可能的混淆/冲突。

希望这对您有所帮助!

关于sftp - 如何将 ProFTPD 配置为具有系统用户、PK 身份验证和自定义 umask 的仅 SFTP 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36603769/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com