如何在 Linux 上使用 SSH 创建个人文件服务器

通过 SSH 连接到远程 Linux 系统非常简单。以下是如何操作。
134 位读者喜欢这篇文章。
Why the operating system matters even more in 2017

Internet Archive Book Images。由 Opensource.com 修改。CC BY-SA 4.0

Raspberry Pi 是一个实用且廉价的家用服务器,可以用于很多用途。我最常使用 Raspberry Pi 作为打印服务器,以便在家中与其他设备共享激光打印机,或者作为个人文件服务器来存储项目和其他数据的副本。

我以多种方式使用这个文件服务器。假设我正在进行一个项目,例如一本新书,并且我想为我的工作和所有相关文件创建一个快照副本。在这种情况下,我只需将我的 BookProject 文件夹复制到文件服务器上的 BookBackup 文件夹。

或者,如果我正在清理我的本地文件,并且发现一些我不太需要但又不想立即删除的文件,我会将它们复制到文件服务器上的 KeepForLater 文件夹。这是一种方便的方式,可以从我的日常 Linux 系统中移除杂乱,并将不常用的文件卸载到我的个人文件服务器。

将 Raspberry Pi 或任何 Linux 系统设置为个人文件服务器,不需要配置网络文件系统 (NFS) 或通用 Internet 文件系统 (CIFS),也不需要摆弄其他文件共享系统,例如 WebDAV。您可以使用 SSH 轻松设置远程文件服务器。以下是方法。

在远程系统上设置 SSHD

您的 Linux 系统可能已经安装了 SSH 守护程序 (sshd)。它甚至可能默认运行。如果未运行,您可以通过 Linux 发行版上您喜欢的任何控制面板轻松设置 SSH。我在我的 Raspberry Pi 上运行 Fedora ARM,我可以通过将我的 Pi 的 Web 浏览器指向端口 9090 来远程访问控制面板。(在我的家庭网络中,Raspberry Pi 的 IP 地址是 10.0.0.11,所以我连接到 10.0.0.11:9090。)如果 SSH 守护程序默认未运行,您可以将其设置为在控制面板的“服务”中自动启动。

sshd in the list of system services

您可以在系统服务列表中找到 sshd。

slider to activate sshd

单击滑块以激活 sshd(如果尚未激活)

您有账户吗?

确保您在远程系统上有一个账户。它可能与您在本地系统上使用的用户名相同,也可能不同。

在流行的 Raspbian 发行版上,默认账户用户名是 pi。但是其他 Linux 发行版可能要求您在安装时设置一个唯一的新用户。如果您不知道您的用户名,您可以使用您的发行版的控制面板创建一个。在我的 Raspberry Pi 上,我设置了一个 jhall 账户,该账户与我的日常 Linux 桌面计算机上的用户名匹配。

Set up a new account on Fedora Server

如果您使用 Fedora Server,请单击“创建新用户”按钮以设置新账户。

Set password or SSH key

如果您使用 Fedora Server,请单击 创建新用户 按钮以设置新账户

可选:共享您的 SSH 公钥

如果您与远程 Linux 系统交换了您的公共 SSH 密钥,您可以登录而无需输入密码。此步骤是可选的;如果您愿意,可以使用密码。

您可以在这些 Opensource.com 文章中了解更多关于 SSH 密钥的信息

创建文件管理器快捷方式

既然您已经在远程系统上启动了 SSH 守护程序并设置了您的账户用户名和密码,剩下的就是从您的文件管理器中映射一个快捷方式到另一个 Linux 系统。我使用 GNOME 作为我的桌面,但对于任何 Linux 桌面来说,步骤基本相同。

建立初始连接

在 GNOME 文件管理器中,在左侧导航栏中查找 +Other Locations 按钮。单击该按钮以打开 连接到服务器 提示符。在此处输入远程 Linux 服务器的地址,以 SSH 连接协议开头。

Creating a shortcut in GNOME file manager

GNOME 文件管理器支持多种连接协议。要通过 SSH 建立连接,请以 sftp://ssh:// 开头您的服务器地址。

如果您的用户名在您的本地 Linux 系统和远程 Linux 系统上相同,您可以只输入服务器的地址和文件夹位置。为了连接到我的 Raspberry Pi 上的 /home/jhall 目录,我使用

sftp://10.0.0.11/home/jhall

GNOME file manager Connect to Server

如果您的用户名不同,您可以在远程系统地址之前使用 @ 符号指定您的远程系统用户名。要连接到另一端的 Raspbian 系统,您可以使用

sftp://pi@10.0.0.11/home/pi

GNOME file manager Connect to Server

如果您没有共享您的公共 SSH 密钥,您可能需要输入密码。否则,GNOME 文件管理器应自动打开远程系统上的文件夹,并让您导航。

GNOME file manager connection

创建一个快捷方式,以便您可以稍后轻松连接到服务器

这在 GNOME 文件管理器中很容易实现。右键单击导航列表中的远程系统名称,然后选择 添加书签。这将创建一个指向远程位置的快捷方式。

GNOME file manager - adding bookmark

如果您想为书签指定一个更易记的名称,您可以右键单击快捷方式并选择 重命名

就是这样!

通过 SSH 连接到远程 Linux 系统非常简单。您可以使用相同的方法连接到家庭文件服务器以外的系统。我还有一个快捷方式,可以让我立即访问我的提供商的 Web 服务器上的文件,另一个快捷方式可以让我打开我的项目服务器上的文件夹。SSH 使其成为安全连接;我的所有流量都已加密。一旦我通过 SSH 打开远程系统,我就可以像管理本地文件夹一样轻松地使用 GNOME 文件管理器管理我的远程文件。

接下来阅读
标签
photo of Jim Hall
Jim Hall 是一位开源软件倡导者和开发者,以在 GNOME 中进行可用性测试以及作为 FreeDOS 的创始人和项目协调员而闻名。

10 条评论

我对你所说的“远程服务器”有点困惑,当你似乎在谈论本地网络上的某些东西时。

“本地”服务器是指在本地系统上运行的服务器。这通常指的是像数据库服务器这样的东西,它与 Web 服务器在同一台服务器上运行。

“远程”服务器是指在另一系统上运行的服务器。例如,当数据库服务器与 Web 服务器位于不同的服务器上时,数据库服务器对于 Web 服务器来说是“远程”服务器。为了获得最佳安全性,“远程”服务器通常存在于防火墙之后,有时在另一个网络上 - 但“远程”服务器也可以存在于同一子网中。

这就是我使用“远程服务器”这个术语的方式。它是一个“远程服务器”,因为 SSH 文件服务器不是在我的 Linux 桌面电脑上运行,而是在我网络上的另一台 Raspberry Pi 上运行。

回复 ,作者是 Greg P

这是一个很好的链接和关于硬盘驱动器停止旋转的参考。就我而言,我的 microSD 卡上的 /home 中有相当多的可用空间。文章中没有提到的是一个 USB 闪存驱动器,它被挂载为 /backup,我将其用于其他用途。

两者对于写入大量数据(例如对我的常规 Linux 桌面 PC 进行完全备份)都不是特别快,但对于创建项目文件夹的备份副本,或存储一些我不准备删除但不需要保留的东西来说,它就足够好了。

回复 ,作者是 Steve B (未验证)

这也是我阅读这篇文章时的担忧....您应该需要一个公共 IP 地址才能远程连接,或者动态 DNS 可以做到这一点吗?

多年前,我设置了一台家用电脑,以便我可以远程连接。您必须做的第一件事是让您的 ISP 为您提供一个固定 IP 地址。第二件事是设置您的 hostsallow 和 hostsdeny,以允许您自己访问,但阻止几乎所有人(我已经忘记了这些文件在哪里)。
我发现的是,立即您就会受到来自世界各地尝试登录您的系统的攻击(显然,有机器人不断寻找 IP 地址以获取访问权限),因此,将这些人拒之门外至关重要,您必须不断查看您的日志以了解发生了什么。最后,我决定这样做的好处不值得焦虑和风险。

回复 ,作者是 dadeng

同意文章的内容 - 但我发现(至少对我而言 - 您的体验可能有所不同)使用 sshfs 更简单。

要使用它
在您的“服务器”上(托管文件的地方)

* 安装 ssh(如上所述)

在您的客户端上

* 安装 sshfs

* 创建一个目录(例如 ~/Remote)

要使用

* sshfs username@remote:/target-directory ~/Remote

#使用适当的名称替换

#输入密码,如果您尚未设置证书

* 直接使用 ~/Remote 访问服务器上的文件,权限与用户名相同

* 完成后,fusermount -u ~/Remote

我认为这将成为 OpenSource 的一篇很棒的文章!我鼓励您撰写一篇关于使用 sshfs 通过 SSH 挂载文件系统的文章。您可以联系编辑提交您的主题。

回复 ,作者是 andrew baldwin (未验证)

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.