如何在家庭网络上使用 SSH 和 SFTP 协议

使用 SSH 和 SFTP 协议访问其他设备,高效安全地传输文件等等。
190 位读者喜欢这篇文章。
open network

Opensource.com

多年前,我决定设置一台额外的计算机(我总是有多余的计算机),以便我可以从工作场所访问它来传输我可能需要的文件。为此,基本的第一步是让您的 ISP 分配一个固定的 IP 地址。

接下来的步骤虽然不那么基本,但更重要,那就是安全地设置您的可访问系统。在特定情况下,我计划仅从工作场所访问它,因此我可以限制对该 IP 地址的访问。即便如此,您也希望使用所有可能的安全功能。令人惊讶和恐惧的是,一旦您设置好,来自世界各地的人们将立即尝试访问您的系统。您可以通过检查日志来发现这一点。我推测有机器人程序不断搜索可以找到的任何敞开的门。

在我设置好计算机后不久,我意识到我的访问更多的是一种玩具而不是一种需求,所以我把它关掉了,让自己少了一件担心的事情。尽管如此,在您的家庭网络内部,SSH 和 SFTP 还有另一种用途,而且或多或少已经为您设置好了。

当然,一个要求是您家中的另一台计算机必须开机,尽管是否有人登录并不重要。您还需要知道它的 IP 地址。有两种方法可以找到它。一种是访问路由器,您可以通过浏览器执行此操作。通常,它的地址类似于 192.168.1.254。通过一些搜索,应该很容易找出当前通过 eth0 或 WiFi 连接到系统的内容。具有挑战性的是识别您感兴趣的计算机。

我发现更简单的方法是转到有问题的计算机,调出 shell,然后键入

ifconfig

这会输出大量信息,但您需要的部分在 inet 之后,可能看起来像 192.168.1.234。找到后,返回到您要访问此主机的客户端计算机,并在命令行中键入

ssh gregp@192.168.1.234

为了使此操作有效,gregp 必须是该系统上的有效用户。然后系统会要求您输入他的密码,如果您正确输入,您将以 shell 环境连接到另一台计算机。我承认我不经常以这种方式使用 SSH。我有时使用它,以便我可以运行 dnf 来升级另一台计算机,而不是我正在使用的计算机。通常,我使用 SFTP

sftp gregp@192.168.1.234

因为我更需要一种从一台计算机向另一台计算机传输文件的简便方法。它肯定比使用 U 盘或外部驱动器更方便、更省时。

连接后,SFTP 的两个基本命令是 get(从主机接收文件)和 put(向主机发送文件)。我通常会迁移到客户端上的目录,在那里我想保存从主机获取的文件或发送到主机的文件,然后再连接。连接后,您将位于顶层目录中——在本例中为 home/gregp。连接后,您可以像在客户端中一样使用 cd,只不过现在您正在更改主机上的工作目录。您可能需要使用 ls 来确保您知道自己身在何处。

如果您需要更改客户端上的工作目录,请使用命令 lcd(如 local change directory 中的缩写)。同样,使用 lls 显示客户端系统上的工作目录内容。

如果主机上没有您想要的名称的目录怎么办?使用 mkdir 在其上创建一个新目录。或者您可以使用以下命令将整个文件目录复制到主机:

put -r ThisDir/

这会创建目录,然后将其所有文件和子目录复制到主机。这些传输速度非常快,与您的硬件允许的速度一样快,并且没有您可能在互联网上遇到的任何瓶颈。要查看可以在 SFTP 会话中使用的命令列表,请查看

man sftp

我还能够在计算机上的 Windows VM 上使用 SFTP,这是设置 VM 而不是双启动系统的另一个优势。这使我可以将文件移动到系统 Linux 部分或从中移动文件。到目前为止,我只使用 Windows 中的客户端执行此操作。

您还可以使用 SSH 和 SFTP 访问通过有线或 WiFi 连接到路由器的任何设备。有一段时间,我使用一个名为 SSHDroid 的应用程序,它以被动模式运行 SSH。换句话说,您使用您的计算机访问作为主机的 Android 设备。最近我找到了另一个应用程序,Admin Hands,其中平板电脑或手机是客户端,可用于 SSH 或 SFTP 操作。此应用程序非常适合备份或共享手机中的照片。

标签
Greg Pittman
Greg 是肯塔基州路易斯维尔的一位退休神经科医生,长期以来对计算机和编程感兴趣,从 1960 年代的 Fortran IV 开始。当 Linux 和开源软件出现时,它激发了学习更多知识的决心,并最终做出贡献。他是 Scribus 团队的成员。

7 条评论

“为此,基本的第一步是让您的 ISP 分配一个固定的 IP 地址。”

不幸的是,许多 ISP 会为此向您收取额外费用。

另一种选择是使用像 now-dns.org 这样的免费 DNS 服务;您可以拥有自己的域名,并定期(根据您的喜好频率 - 有多种工具)向他们确认您当前的 IP 地址。

您工作场所是否允许您建立与非网络资源的 SSH 连接?在过去 10 年左右我工作过的大多数地方,只允许连接到批准的供应商 IP。

我当时的做法是使用我的 Linux 笔记本电脑连接到工作场所的 wifi,然后从那里连接回家。

回复 作者 Scott Jacobson (未验证)

感谢您的文章,我使用 WinSCP 来访问 unix 机器文件,对于 windows 来说是非常有用的工具,您能为 linux 系统推荐一些好的替代方案吗?

我在我的家庭网络上有一个 Raspberry Pi,我用它做的一件事是备份。我在 Raspberry Pi 上运行了 sshd,并在 Pi 上挂载了一个 USB 驱动器作为 /backup。然后我使用 GNOME 的文件管理器将文件夹映射到 Pi 的 /backup over SSH。

只需单击文件管理器中的快捷方式,输入我的(Raspberry Pi)密码,它就可以使用了。这非常容易。而且透明。而且安全。

我使用 Pi 的 /backup 来存储我不希望丢失的物品的第二个副本。

为了方便在家庭网络上使用 ssh 和 sftp,您可以为家中的每台设备分配固定的 IP 地址,并将列表放在每个 /etc/hosts 中。只需复制粘贴相同的列表即可。

这样您就可以使用机器的名称而不是数字来联系另一台机器。我甚至在我的支持 ssh 的智能手机上有一个 hosts 文件,这对于文件传输以及远程更新或关闭家庭 HTPC 非常方便 ;-)

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