Ubuntu的Filezilla或WinSCP替代品
在Windows上我使用FileZilla在我的WordPress网站上通过sftp上传/下载文件,同时使用ssh密钥。
现在Linux是我的主要操作系统。 在过去的一个月里,FileZilla客户端在Ubuntu 16.04上工作正常,但现在每次启动它都会崩溃。 我在互联网上搜索,发现它发生在很多用户身上。 不幸的是,如果我们问他们,FileZilla支持只有一个答案:
Ubuntu 16.04是旧操作系统,使用17.10或Debian最新版本。
我不想用17.10。 所以我正在寻找Linux的FileZilla客户端替代品,我可以使用ssh key作为sftp客户端。
我发现gFTP(这是一个旧程序,我不确定它有多安全?),我还发现我可以使用Ubuntu文件管理器连接到我的服务器。 使用Nautilus或Caja时连接服务器是个好主意吗?
实际上我不想在我单击文件>连接到服务器时出现的对话框中输入我的用户名/密码,而是想使用我的.ppk
密钥。 我如何在Nautilus或Caja中添加它?
使用Nautilus
您可以使用Nautilus中的Connect to Server
选项Connect to Server
如下图所示。
- 如果需要查找已安装目录的命令行路径,请使用此处介绍的方法之一: ftp网络连接的CLI路径 。
-
第一个例子
sftp://victoria-pass/home/tri
– 使用名为victoria-pass
预定义主机,并安装名为tri
的远程用户的home/
目录。要使用此方法,您应该为本地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
-
第二个示例 –
sftp://tri@victoria.org:1111/home/tri
– 显示如何连接到远程ssh(sftp)服务器而不使用带有自定义ssh端口的预定义~/.ssh/config
文件。这种方法的主要缺点是,如果认证文件不是
~/.ssh/id_rsa
您应该通过命令ssh-add
提前提供。 例如,如果身份validation文件名为file.pem
:ssh-add /full/path/to/the/authentication/file.pem
我想你应该每次重启本地机器时都这样做,或者你应该在
~/.profile
文件中包含上面的命令。
Usung gFTP
以下是如何设置gFTP以使用SSH密钥的步骤。
-
在FTP菜单中单击首选项 ;
-
转到SSH选项卡 ;
-
使用此值填写SSH Extra Params字段:
-o IdentityFile=/home/
/.ssh/id_rsa 使用您的真实
更改
。 或使用:-o IdentityFile=~/.ssh/id_rsa
-
在gFTP的主窗口中选择SSH2作为连接类型;
-
输入目标主机名或IP地址;
-
设置目标计算机的SSH 端口 (如果不是默认值 –
22
); -
输入用户进行SSH连接;
-
输入您的SSH密钥的密码短语(如果有的话);
-
按Enter键 。
使用SSHFS
您可以通过命令行工具sshfs
挂载远程目录(或整个文件系统)。 然后你可以按照自己的意愿“本地”操纵它。 这是我的首选方式。 假设安装目录是~/mount
并且您想要挂载远程用户的主目录:
sshfs user@host.name.or.ip:/home/ /home//mount/
或者,如果您已创建~/.ssh/config
文件:
sshfs host-name:/home/ /home//mount/
此外,您还可以创建/etc/fstab
条目 – 引用:
- 如何将sshfs命令转换为fstab条目?
- 尽管有/ etc / fstab配置,sshfs在引导时不会自动挂载
转换PPK密钥
请注意,如果您以前使用过PPK密钥,这意味着PuTTY私钥 ,您应该转换它,因为与CloneZilla不同,上述工具无法读取此格式。 为此,您应该使用作为包putty-tools
的一部分的工具puttygen
:
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密钥?
- 如何使用密钥从Windows通过PuTTY SSH Ubuntu
根据安全
虽然所有方法都使用相同的连接方法 – SSH – 但它们提供的安全性应该是等效的。 来自维基百科 :
Secure Shell(SSH)是一种加密网络协议,用于在不安全的网络上安全地运行网络服务…… SSH在客户端 – 服务器体系结构中通过不安全的网络提供安全通道,将SSH客户端应用程序与SSH服务器连接…
SSH使用的加密旨在通过不安全的网络(如Internet)提供数据的机密性和完整性…… SSH使用公钥加密对远程计算机进行身份validation,并允许其在必要时对用户进行身份validation…
一种方法是使用自动生成的公钥 – 私钥对简单地加密网络连接,然后使用密码validation登录…
另一种方法是使用手动生成的公钥 – 私钥对来执行身份validation,允许用户或程序登录而无需指定密码。 在这种情况下,任何人都可以生成一对匹配的不同密钥(公共和私有)……