适用于Ubuntu的Filezilla或WinSCP替代品


12

在Windows上,我使用FileZilla并通过ssh键通过sftp在WordPress网站上上传/下载文件。

现在,Linux是我的主要操作系统。在上个月,FileZilla客户端在Ubuntu 16.04上运行良好,但是现在我启动它时崩溃。我在互联网上搜索时发现,很多用户都在发生这种情况。不幸的是,如果我们询问FileZilla支持,他们只有一个答案:

Ubuntu 16.04是旧的操作系统,使用17.10或Debian最新版本。

我不想使用17.10。因此,我正在寻找Linux的FileZilla客户端替代方案,可以将其用作具有ssh键的sftp客户端。

我找到了gFTP(这是一个旧程序,我不确定它有多安全?),我还发现可以使用Ubuntu文件管理器连接到服务器。在使用Nautilus或Caja时连接服务器是否是一个好主意?

实际上,我不想将用户名/密码放在单击文件>连接到服务器时出现的对话框中,而是想使用我的.ppk密钥。如何在Nautilus或Caja中添加它?


我只想进一步澄清我的问题。实际上,我不想将我的用户名/密码放在当我单击文件>连接到服务器时出现的对话框中,而我想使用.ppk键。如何在Nautilus或Caja中添加它?
ShahMoeen '17

1
16.04存储库中的版本有什么问题?
罗恩·约翰(RonJohn)

2
维护Filezilla for 16.04分支的是Ubuntu,而不是Filezilla开发人员,因此Filezilla开发人员只是告诉您升级是很自然的,因为他们对Ubuntu 16.04中版本的行为不承担任何责任。尝试从终端窗口打开Filezilla,如果崩溃,您可能会在控制台中收到错误消息或跟踪,然后将其与Filezilla中现有的已报告错误进行比较,如果是新错误,则进行新报告。
thomasrutter

2
ubuntu如何方便地制动旧版本,迫使ppl升级,这是一个奇迹 但这就是您从流血的边缘/不稳定得到的结果,每6个月,您就会被棒球棒撞到头。尝试降级filezila
user688056 '17

Answers:


14

使用Nautilus

您可以Connect to Server在Nautilus中使用该选项,如下图所示。

在此处输入图片说明

  1. 第一个示例- sftp://victoria-pass/home/tri使用名为的预定义主机,victoria-pass并挂载名为home/的远程用户的目录tri

    要使用这种方法,您应该为本地ssh客户端创建用户的配置文件。必须调用该文件config并将其放置.ssh/在用户主目录下的目录中~/.ssh/config。根据示例,文件的内容应为:

    Host victoria-pass             # this is as 'nickname' of the connection
        HostName victoria.org      # or use the IP address
        IdentityFile ~/.ssh/id_rsa # or provide the fill path to another key
        User tri                   # use the actual name of the remote user
        Port 1111                  # provide the actual port of the remote server
        # other parameters...
    
    # setup each another Host in the same way...        

    更改文件权限:

    chmod 600 ~/.ssh/config
    

    另外,现在您应该能够通过以下命令通过以下命令连接到这些主机:

    ssh victoria-pass
    
  2. 第二个示例- sftp://tri@victoria.org:1111/home/tri显示了如何在不使用~/.ssh/config带有自定义ssh端口的预定义文件的情况下连接到远程ssh(sftp)服务器。

    这种方法的主要缺点是,如果不是身份验证文件~/.ssh/id_rsa,则应通过命令提前提供它ssh-add。例如,如果认证文件名为file.pem

    ssh-add /full/path/to/the/authentication/file.pem 
    

    我认为您应该在每次重新启动本地计算机时都执行此操作,或者应该在~/.profile文件中包含以上命令。


Usung gFTP

以下是如何设置gFTP以使用SSH密钥的步骤。

在此处输入图片说明

  1. FTP菜单中,单击“ 首选项”

  2. 转到SSH选项卡 ;

  3. 使用以下值填写“ SSH Extra Params ”字段:

    -o IdentityFile=/home/<your user>/.ssh/id_rsa
    

    <user name>用您的真实用户名更改。或使用:

    -o IdentityFile=~/.ssh/id_rsa
    
  4. 在gFTP的主窗口中,选择SSH2作为连接类型;

  5. 输入目标主机名或IP地址;

  6. 设置目标计算机的SSH 端口(如果不是默认端口 - 22);

  7. 输入用户以进行SSH连接;

  8. 输入您的SSH密钥的传递短语(如果有一些);

  9. Enter


使用SSHFS

您可以通过命令行工具挂载远程目录(或整个文件系统)sshfs。然后,您可以根据需要在“本地”操作它。这是我最好的方法。假设挂载目录为,~/mount并且您要挂载远程用户的主目录:

sshfs user@host.name.or.ip:/home/<user> /home/<local-user>/mount/

或者,如果您已创建~/.ssh/config文件:

sshfs host-name:/home/<remote-user> /home/<local-user>/mount/

此外,您还可以创建/etc/fstab条目-参考:


转换PPK密钥

请注意,如果您以前使用过PPK密钥,即PuTTY专用密钥,则应进行转换,因为与CloneZilla不同,上述工具无法读取此格式。为此,您应该使用puttygen包装中包含的工具putty-tools

sudo apt install putty-tools

现在,您可以通过以下方式转换密钥:

puttygen input-key-filename.ppk -O private-openssh -o output-key-filename.pem

感谢@steeldriver提供此注释。这是来源,并提供一些其他参考:


根据安全性

尽管所有方法都使用相同的连接方法-SSH-但它们提供的安全性应等效。从维基百科

安全外壳(SSH)是一种加密网络协议,用于在不安全的网络上安全地运行网络服务... SSH在客户端-服务器体系结构中通过不安全的网络提供安全通道,将SSH客户端应用程序与SSH服务器连接...

SSH使用的加密旨在在不安全的网络(例如Internet)上提供数据的机密性和完整性.SSH使用公钥加密对远程计算机进行身份验证,并在必要时允许其对用户进行身份验证...

一种方法是使用自动生成的公私钥对对网络连接进行简单加密,然后使用密码身份验证进行登录...

另一种方法是使用手动生成的公钥-私钥对执行身份验证,从而使用户或程序无需指定密码即可登录。在这种情况下,任何人都可以产生一对匹配的不同密钥(公共密钥和私有密钥)...


谢谢您的回复。实际上,我不想将我的用户名/密码放在当我单击文件>连接到服务器时出现的对话框中,而我想使用.ppk键。如何在Nautilus或Caja中添加它?
ShahMoeen '17

@ShahMoeen,我完成了。
pa4080

2
@ShahMoeen请参阅如何将Filezilla PPK转换为openssh sftp兼容密钥。另外,如果您仍然可以访问Windows,如何将PuTTY的.ppk转换为SSH密钥
steeldriver

感谢@ pa4080的详细答复。我使用gFTP完成了您要求的每一个步骤,但不幸的是它没有用。在我按Enter键输入主机,端口和用户详细信息后,在gFTP的主屏幕上,它开始连接,但是一直没有结束,在底部,我可以看到它停止在“协议初始化”
ShahMoeen

@steeldriver非常感谢,最后我使用gFTP做到了。谢谢大家的帮助,顺便说一句,人们会告诉我您使用哪种方法以及为什么吗?
ShahMoeen '17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.