![将 SFTP 设置为不需要私钥](https://linux22.com/image/104697/%E5%B0%86%20SFTP%20%E8%AE%BE%E7%BD%AE%E4%B8%BA%E4%B8%8D%E9%9C%80%E8%A6%81%E7%A7%81%E9%92%A5.png)
所以我有这个服务器,我使用密钥通过 SSH 使用我的 sudoer 帐户登录。我还创建了另一个受限帐户,以便其他用户可以访问特定文件夹中的 SFTP 文件。
现在,当我尝试使用 sftp 连接时,它仍然向我吐出无效密钥。
我希望该特定用户能够仅使用用户名和密码进行 SFTP。感谢这里的任何帮助,谢谢!
丹尼尔
答案1
在 /etc/ssh/sshd_config 中,通过为每个用户名添加此块来定义 sshd 中的以下异常:
Match User username
ChrootDirectory %h
ForceCommand internal-sftp
PasswordAuthentication yes
如果您有多个帐户,则更容易进行组捕获:
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
PasswordAuthentication yes
为了清楚起见,您的意思是:没有公钥要求。私钥保留在客户端的工作站/服务器上。
之后,重新加载 sshd 就可以了。阅读更多相关信息,请访问https://wiki.archlinux.org/index.php/SFTP_chroot
答案2
也许最简单和最简单的解决方案是创建第二个sshd
守护程序,它具有不同的配置文件和不同的属性。该帐户可以指定允许使用它的一个用户,并且可以使用任何适当的凭据设置该帐户。
例如,我有第二个服务器,通过以下方式调用:
/usr/sbin/sshd -f /etc/ssh/sshd_config1
config1 文件指定了不同的端口,
Port 2134
AllowUsers xxxxy yyyyx
AuthenticationMethods password
PubkeyAuthentication no