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

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

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

树莓派可以作为经济实用的家用服务器,用途广泛。 我最常使用树莓派作为打印服务器,以便与家中的其他设备共享激光打印机,或作为个人文件服务器来存储项目和其他数据的副本。

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

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

将树莓派或任何 Linux 系统设置为个人文件服务器,不需要配置网络文件系统 (NFS) 或通用 Internet 文件系统 (CIFS),也不需要修改 WebDAV 等其他文件共享系统。 您可以使用 SSH 轻松设置远程文件服务器。 下面介绍如何操作。

在远程系统上设置 SSHD

您的 Linux 系统可能已安装 SSH 守护程序 (sshd)。 它甚至可能默认运行。 如果没有,您可以通过您在 Linux 发行版上喜欢的任何控制面板轻松设置 SSH。 我在我的树莓派上运行 Fedora ARM,我可以通过将我的 Pi 的 Web 浏览器指向端口 9090 来远程访问控制面板。 (在我的家庭网络中,树莓派的 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 发行版可能要求您在安装时设置唯一的新用户。 如果您不知道您的用户名,您可以使用您的发行版的控制面板创建一个。 在我的树莓派上,我设置了一个 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 文件管理器中,在左侧导航栏中查找 +其他位置 按钮。 单击该按钮以打开 连接到服务器 提示。 在此处输入远程 Linux 服务器的地址,以 SSH 连接协议开头。

Creating a shortcut in GNOME file manager

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

如果您的用户名在您的本地 Linux 系统和您的远程 Linux 系统上相同,您只需输入服务器的地址和文件夹位置即可。 为了连接到我的树莓派上的 /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 桌面上运行,而是在我网络中其他地方的树莓派上运行。

回复 作者:Greg P

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

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

回复 作者:Steve B (未验证)

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

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

回复 作者:dadeng

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

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

* 安装 ssh(如上所述)

在您的客户端上

* 安装 sshf

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

要使用

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

#使用适当的名称替换

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

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

* 完成后,fusermount -u ~/Remote

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

回复 作者:andrew baldwin (未验证)

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.