Ubuntu 的 Filezilla 或 WinSCP 替代品

Sha*_*een 14 ssh ftp software-recommendation sftp filezilla

在 Windows 上,我使用 FileZilla 通过 sftp 在我的 WordPress 网站上上传/下载文件,同时使用 ssh 密钥。

现在 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 中添加它?

pa4*_*080 15

使用鹦鹉螺

您可以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...        
    
    Run Code Online (Sandbox Code Playgroud)

    更改文件权限:

    chmod 600 ~/.ssh/config
    
    Run Code Online (Sandbox Code Playgroud)

    此外,现在您应该能够通过以下命令连接到这些主机中的每一个:

    ssh victoria-pass
    
    Run Code Online (Sandbox Code Playgroud)
  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 
    
    Run Code Online (Sandbox Code Playgroud)

    我认为你每次重启本地机器时都应该这样做,或者你应该在~/.profile文件中包含上面的命令。


使用 gFTP

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

在此处输入图片说明

  1. FTP 菜单中点击Preferences

  2. 转到SSH 选项卡

  3. 使用此值填充字段SSH Extra Params

    -o IdentityFile=/home/<your user>/.ssh/id_rsa
    
    Run Code Online (Sandbox Code Playgroud)

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

    -o IdentityFile=~/.ssh/id_rsa
    
    Run Code Online (Sandbox Code Playgroud)
  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/
Run Code Online (Sandbox Code Playgroud)

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

sshfs host-name:/home/<remote-user> /home/<local-user>/mount/
Run Code Online (Sandbox Code Playgroud)

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


转换 PPK 密钥

请注意,如果您之前使用过PPK密钥,即PuTTY Private Key,您应该转换它,因为与 CloneZilla 不同,上述工具无法读取这种格式。为此,您应该使用puttygen作为包一部分的工具putty-tools

sudo apt install putty-tools
Run Code Online (Sandbox Code Playgroud)

现在您可以通过这种方式转换密钥:

puttygen input-key-filename.ppk -O private-openssh -o output-key-filename.pem
Run Code Online (Sandbox Code Playgroud)

感谢@steeldriver的这篇笔记。这是来源和一些其他参考资料:


根据保安

虽然所有方法都使用相同的连接方法 - SSH - 它们提供的安全性应该是等效的。来自维基百科

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

SSH 使用的加密旨在通过不安全的网络(例如 Internet)提供数据的机密性和完整性...... SSH 使用公钥加密来验证远程计算机并允许它在必要时验证用户......

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

另一种是使用手动生成的公私钥对进行认证,允许用户或程序无需指定密码即可登录。在这种情况下,任何人都可以生成一对匹配的不同密钥(公钥和私钥)...

  • @ShahMoeen 请参阅[如何将 Filezilla PPK 转换为 openssh sftp 兼容密钥](https://askubuntu.com/questions/904142/how-to-convert-filezilla-ppk-to-openssh-sftp-compatible-key)。或者,如果您仍然可以访问 Windows,[如何将 PuTTY 的 .ppk 转换为 SSH 密钥](https://docs.oseems.com/general/application/putty/convert-ppk-to-ssh-key) (2认同)

归档时间:

查看次数:

10430 次

最近记录:

6 年,3 月 前