AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 987769
Accepted
ShahMoeen
ShahMoeen
Asked: 2017-12-20 07:38:12 +0800 CST2017-12-20 07:38:12 +0800 CST 2017-12-20 07:38:12 +0800 CST

Ubuntu 的 Filezilla 或 WinSCP 替代品

  • 772

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

ssh
  • 1 1 个回答
  • 11566 Views

1 个回答

  • Voted
  1. Best Answer
    pa4080
    2017-12-20T07:47:29+08:002017-12-20T07:47:29+08:00

    使用鹦鹉螺

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

    在此处输入图像描述

    • 如果您需要找到挂载目录的命令行路径,请使用此处介绍的方法之一:CLI path to ftp network connection。
    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://[email protected]: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文件中包含上述命令。


    使用 gFTP

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

    在此处输入图像描述

    1. 在FTP 菜单中单击Preferences;

    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 [email protected]:/home/<user> /home/<local-user>/mount/
    

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

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

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

    • 如何将 sshfs 命令转换为 fstab 条目?
    • 尽管 /etc/fstab 配置,sshfs 不会在启动时自动挂载

    转换 PPK 密钥

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

    sudo apt install putty-tools
    

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

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

    感谢@steeldriver提供此说明。以下是来源和一些额外的参考资料:

    • 如何将 Filezilla PPK 转换为 openssh sftp 兼容密钥
    • 如何将 PuTTY 的 .ppk 转换为 SSH 密钥
    • 如何在 Linux 下将 .ppk 密钥转换为 OpenSSH 密钥?
    • 如何使用密钥通过 PuTTY 从 Windows SSH Ubuntu

    根据安检

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

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

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

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

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

    • 15

相关问题

  • Gnome-terminal 快捷方式在选项卡中打开多个 ssh 连接

  • 通过 SSH 禁用密码访问?

  • ssh 如何使用多个私钥?

  • 如何通过一个 SSH 连接拥有多个终端会话?

  • 如何与无头服务器进行图形交互?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve