多年前,我决定设置一台额外的计算机(我总是有多余的计算机),以便我可以从工作场所访问它来传输我可能需要的文件。为此,基本的第一步是让您的 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 操作。此应用程序非常适合备份或共享手机中的照片。
7 条评论