在工作经常会遇见这个问题,在Windows上使用ftp命令登录Linux服务器时会有这样的提示:530 Must perform authentication before identifying USER。经过网上的查找终于找的解决得方案。首先谢谢提供解决方案的高手们。本人特借鉴过来,做此记录只为学习使用。目前本人知道解决方法如下:
首先,如果正在使用vsftpd,可以先把其停掉,命令:service vsftpd stop,接下来需要编辑/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
}
在文件中,我们要修改的内容有:
1、disable = yes 改为 disable =no ,系统默认ftp功能是无效的,修改使ftp功能生效。
2、server_args = -l -a 改为 server_args = -l。
without -a means : *enable weak authentication*
其中表示使用Kerberos 5验证机制,而一般的ftp是不支持该验证机制的。
修改完毕后,将其保存。
3、重启启动xinetd服务。请执行一下的命令(/etc/xinetd.d/):
service xinetd restart
service vsftpd restart
注:
1、建议gssftp配置文件中的user(user = root)不要使用root,最好使用其他的用户。
2、在Linux RHEL 5 或者更高版本中可能不存在gssftp,本人还没有接触到。