FileZilla使用SFTP协议连接Ubuntu报错:filezilla Couldn‘t agree a key exchange algorithm 。
发生缘由
-
FileZilla连接Ubuntu传输文件
运行环境
-
电脑系统:win10
-
Ubuntu版本:ubuntu-20.04.4-desktop-amd64
-
报错信息
问题解决
有两种解决方式:更换一个FileZilla版本或者更换为连接协议。
更换FileZilla版本
-
官网:
-
网盘:
-
经测试,更换至FileZilla-3.60.1是没有任何问题的。
更换为FTP协议
卸载FTP服务命令如下:sudo apt-get remove --purge vsftpd
(--purge 选项表示彻底删除改软件和相关文件)
-
安装 FTP 服务
sudo apt-get install vsftpd
-
安装好FTP服务之后就可以尝试连接了,这个时候只要不使用root用户进行连接,一般都可以连接成功的。使用root用户连接方法在下面。
但是很可惜,虽然连接成功了,但是我们是无法进行传输文件的。
-
修改配置
vi /etc/vsftpd.conf # 使用vi编辑器修改/etc/vsftpd.conf文件
找到
write_enable=YES
(是否允许上传文件),把它的注释打开。允许上传文件修改之后重启该服务:
/etc/init.d/vsftpd restart
-
这时候尝试上传文件,成功了。
使用root用户连接
上面是使用普通用户连接的,我使用的是lx这个用户,但是这个用户的权限过于低,很多地方都不能够访问,也不能够上传文件,所以我想着使用root用户进行连接。
使用root用户连接存在两种情况,使用FTP协议或者使用SFTP协议。下面演示FTP协议,如果是使用SFTP协议连接的话就要更换FileZilla版本了。
-
设置root用户密码
root用户默认是不设置密码的,我们需要来手动设置一下。
通过SecureCRT来连接Ubuntu,然后键入如下代码:
sudo passwd root
,这会要求输入当前用户登录的密码,验证成功后会让你设置root用户密码以及重复输入。之后让Ubuntu重启:
reboot
-
打开站点管理器,协议是FTP协议,输入IP地址,用户输入root,密码是刚刚设置的密码。不出意外,出意外了:
-
这种情况可能有两种问题:
①账号或者密码错误。我这里就是这种情况,密码出现错误了,之前设置的是对的,但是关闭FileZilla-3.7.3切换至FileZilla-3.60.1密码就出现错误了。
②没有指定shell。解决方法是修改配置文件
vi /etc/vsftpd.conf
,找到pam_service_name=vsftpd
,将其修改为pam_service_name=ftp
。然后重启该服务就可以了/etc/init.d/vsftpd restart
。当然这种方法不安全哈!