无法使用新创建的帐户连接到FTP

时间:2014-07-14 14:43:34

标签: linux ssh 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

无论哪种方式,它似乎都不允许我在任何地方使用这个新用户。

我的服务器详细信息

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

6 个答案:

答案 0 :(得分:2)

关于FTP,Linux系统上常用的FTP服务器要求用户拥有文件/etc/shells中列出的shell。例如,这个online ftpd man page表示,除其他外,“用户必须有getusershell(3)返回的标准shell。”。 page for 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服务器组件,可以用来代替外部程序。限制某些用户对SFTP的SSH访问的常用方法是在Match内设置sshd_config组,强制某些类用户使用internal-sftp命令。以下是几个例子:

答案 1 :(得分:0)

不要使用“-s / bin / false”。请改用“-s / sbin / nologin”,它应该没问题。

答案 2 :(得分:0)

确保您的帐户密码未过期。我做了,Filezilla退出了错误代码1.

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

答案 3 :(得分:0)

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

chage -l <user>

帐户不得过期。

答案 4 :(得分:0)

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

响应:220欢迎使用Scent Library的文件服务。 命令:USER ftpuser 响应:331请指定密码。 命令:PASS ****** 响应:530登录不正确。

filezilla 530错误-但密码正确

vsftpd:530登录错误

530登录名或密码错误!

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

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

更改用户的外壳

usermod -s / usr / sbin / nologin用户名

然后编辑“ / etc / shells”文件并添加此行 / usr / sbin / nologin

答案 5 :(得分:-5)

要使用ftp连接服务器,还需要运行ftp服务器/服务或守护程序。 这种ftp服务器的一个例子是&#34; vsftpd&#34; 安装后,您还需要对其进行配置,并允许匿名ftp访问或ftp访问现有用户 您将在路径&#34; /etc/vsftpd/vsftpd.conf"

中找到配置文件。

以下链接可能对您有用 -

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