不能用新创建的帐户连接FTP



我正在尝试用命令

连接到我通过SSH创建的新用户帐户
useradd -s /bin/false -d /home/username james

我使用命令

通过SSH添加/编辑密码
passwd james

当尝试使用此用户连接到我的服务器并通过FileZilla传递时,我得到以下错误消息:

Response:   331 User James OK. Password required
Command:    PASS *****
Response:   530 Login authentication failed
Error:  Critical error
Error:  Could not connect to server

当我尝试使用此用户登录/通过SFTP时,我得到以下错误消息

Status: Connected to domain.com
Error:  Connection closed by server with exitcode 1
Error:  Could not connect to server

不管怎样,它似乎不允许我在任何地方使用这个newuser。

My server details

Linux 2.6.18-308.11.1.el5 GNU/Linux
(Red Hat 4.1.2-52)
Centos

关于FTP, Linux系统上常用的FTP服务器要求用户拥有一个shell,该shell在文件/etc/shells中列出。例如,这个在线ftpd手册页指出,除其他事项外,"用户必须具有getusershell(3)返回的标准shell。"getusershell()的页面显示它从/etc/shells读取shell。

您可能会使FTP工作添加/bin/false/etc/shells。您的Linux系统可能有一个更合适的shell,比如/usr/sbin/nologin

对于SFTP, ssh服务器通常通过调用一个名为sftp-server的程序来提供SFTP服务。如果您检查服务器的sshd_config文件,您可能会发现这样一行:

Subsystem sftp /usr/lib/openssh/sftp-server

sshd将子系统程序作为shell命令运行,使用用户的shell。如果将用户的shell设置为/bin/false,那么sshd最终会运行以下命令:

/bin/false -c /usr/lib/openssh/sftp-server

/bin/false忽略命令行参数并以代码1退出,因此SFTP客户端的会话在启动后立即断开。

sshd有一个内部的SFTP服务器组件,可以用来代替外部的程序。限制某些用户SSH访问SFTP的常用方法是在sshd_config中建立Match组,强制某些类别的用户使用internal-sftp命令。这里有几个例子:

  • http://en.wikibooks.org/wiki/OpenSSH/Cookbook/SFTP SFTP-only_Accounts
  • https://serverfault.com/questions/354615/allow-sftp-but-disallow-ssh

不要使用"-s/bin/false"。使用"-s/sbin/nologin"代替,应该没问题。

确保您的帐户密码没有过期。我的版本是这样,Filezilla以错误码1退出。

登录服务器并更新帐号密码后(连接后立即提示),我现在可以连接SFTP &;Filezilla .

可能是密码相关的问题,检查帐户

chage -l <user>

帐户不能过期

FTP不允许/usr/sbin/nologin用户

响应:220欢迎使用气味图书馆的文件服务。命令:USER ftpuserResponse: 331请指定密码。命令:PASS ******响应:530 Login incorrect.

filezilla 530错误-但密码是正确的

vsftpd: 530 Login incorrect

530登录或密码错误!

如何使用FileZilla通过FTP连接?我得到530的错误。

响应:220欢迎测试FTP服务。命令:USER ftpuserResponse: 331请指定密码。命令:PASS ******响应:530登录错误。Error:严重错误错误:无法连接到服务器

修改用户的shell

usermod -s/usr/sbin/nologin username

然后编辑"/etc/shell"文件并添加这一行/usr/sbin/nologin

为了使用ftp连接到服务器,您还需要运行ftp服务器/服务或守护进程。这种ftp服务器的一个例子是"vsftpd"。安装之后,您还需要配置它,允许匿名ftp访问或对现有用户的ftp访问您将在"/etc/vsftpd/vsftpd.conf"路径下找到配置文件

下面的链接可能对你有用——

https://www.digitalocean.com/community/tutorials/how-to-set-up-vsftpd-on-centos-6--2

最新更新