在windows上使用ftp命令登录Linux服务器时总是提示:530 Must perform authentication before identifying USER。明明在服务器已经建立了test用户,但是使用该用户登录时,却不能成功,但是从Linux的日志可以看到已经连接上服务器,但是并没有登录成功。解决方法如下:
一、使用vsftpd
1、System Settings→Server Settings →Service,在服务列表中取消对gssftp的选择,保存;或者使用ntsysv。
2、重新启动xinetd服务:可以在服务列表重启,也可以使用
sevice xinetd restart
命令重启;
3、启动vsftpd服务。
重新使用ftp登录即可。
但是使用vsftpd时在日志查看器【】(Security Log或System Log)中看不到任何信息,不知道是不是我的设置有问题?因此我采用了第二种方法。
二、使用gssftp
1、如果正在使用vsftpd,可以先把其停掉;
2、编辑/etc/xinetd.d/下的gssftp配置文件:
# default: off
# description: The kerberized FTP server accepts FTP connections
# that can be authenticated with Kerberos 5.
service ftp
{
disable = yes
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/kerberos/sbin/ftpd
server_args = -l -a
log_on_failure += USERID
}
将上面中的:
disable = yes 改为 disable =no
server_args = -l -a 改为 server_args = -l
其中表示使用Kerberos 5验证机制,而一般的ftp是不支持该验证机制的。
修改后,将其保存。
3、重启启动xinetd服务。
尝试重新连接,这是可以在日志查看器中看到登录成功的提示:
Aug 27 11:31:11 localhost ftpd[5094]: FTP LOGIN FROM 172.16.128.246, (test)