多年前,我决定设置一台额外的电脑(我总是有多余的电脑),这样我就可以从工作场所访问它,传输我可能需要的文件。要做到这一点,基本的第一步是让你的 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
因为我更需要一种简单的方法来在电脑之间传输文件。这肯定比使用 USB 闪存盘或外部驱动器更方便、更省时。
一旦你连接上,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 条评论