使用 Nautilus

使用 Nautilus

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

答案1

使用 Nautilus

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

在此处输入图片描述

  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. 第二个示例——展示如何在不使用预定义文件的情况下使用自定义 ssh 端口连接到远程 ssh(sftp)服务器。sftp://[email protected]:1111/home/tri~/.ssh/config

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

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

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


使用gFTP

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

在此处输入图片描述

  1. 在里面FTP 菜单点击优先

  2. SSH 选项卡

  3. 填写字段SSH 额外参数具有此值:

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

    <user name>随你改变真实用户名。或者使用:

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

  5. 输入目标主持人姓名,或知识产权地址;

  6. 设置 SSH港口目标机器(如果它不是默认的- 22);

  7. 进入用户用于 SSH 连接;

  8. 输入你的 SSH 密钥经过短语(如果有的话);

  9. Enter


使用 SSHFS

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

sshfs [email protected]:/home/<user> /home/<local-user>/mount/

或者如果你已经创建了~/.ssh/config文件:

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

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


转换 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 使用公钥加密来验证远程计算机,并允许其在必要时验证用户...

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

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

相关内容