在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)