FileZilla使用SFTP协议连接Ubuntu报错:filezilla Couldn‘t agree a key exchange algorithm 。

发生缘由

  • FileZilla连接Ubuntu传输文件

运行环境

  • 电脑系统:win10

  • Ubuntu版本:ubuntu-20.04.4-desktop-amd64

  • FileZilla版本:FileZilla-3.7.3

报错信息

问题解决

有两种解决方式:更换一个FileZilla版本或者更换为连接协议。

更换FileZilla版本

  • 官网:官网

  • 网盘:网盘

  • 经测试,更换至FileZilla-3.60.1是没有任何问题的。

更换为FTP协议

卸载FTP服务命令如下:sudo apt-get remove --purge vsftpd (--purge 选项表示彻底删除改软件和相关文件)

  1. 安装 FTP 服务

    sudo apt-get install vsftpd
  2. 安装好FTP服务之后就可以尝试连接了,这个时候只要不使用root用户进行连接,一般都可以连接成功的。使用root用户连接方法在下面。

    但是很可惜,虽然连接成功了,但是我们是无法进行传输文件的。

  3. 修改配置

    vi /etc/vsftpd.conf     # 使用vi编辑器修改/etc/vsftpd.conf文件

    找到write_enable=YES(是否允许上传文件),把它的注释打开。允许上传文件

    修改之后重启该服务:/etc/init.d/vsftpd restart

  4. 这时候尝试上传文件,成功了。

使用root用户连接

上面是使用普通用户连接的,我使用的是lx这个用户,但是这个用户的权限过于低,很多地方都不能够访问,也不能够上传文件,所以我想着使用root用户进行连接。

使用root用户连接存在两种情况,使用FTP协议或者使用SFTP协议。下面演示FTP协议,如果是使用SFTP协议连接的话就要更换FileZilla版本了。

  1. 设置root用户密码

    root用户默认是不设置密码的,我们需要来手动设置一下。

    通过SecureCRT来连接Ubuntu,然后键入如下代码:sudo passwd root,这会要求输入当前用户登录的密码,验证成功后会让你设置root用户密码以及重复输入。

    之后让Ubuntu重启:reboot

  2. 打开站点管理器,协议是FTP协议,输入IP地址,用户输入root,密码是刚刚设置的密码。不出意外,出意外了:

  3. 这种情况可能有两种问题:

    ①账号或者密码错误。我这里就是这种情况,密码出现错误了,之前设置的是对的,但是关闭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。当然这种方法不安全哈!

posted @ 2022-08-07 08:09  炸天帮帮主  阅读(782)  评论(0编辑  收藏  举报