轻松安全地访问远程文件
安全外壳,ssh,及其伴侣scp,是我几乎每天都在使用的工具。在多个系统上工作时,能够无需设置SAMBA或NFS即可在机器之间移动文件非常方便。您所需要的只是启用安全外壳守护程序-sshd。
在我们深入了解sshfs的细节之前,让我们快速回顾一下ssh。 安全外壳守护程序默认在端口22上运行。它可以运行加密的shell会话。 使用-Y标志,您甚至可以运行X11转发,从而允许您在远程计算机上运行X11,即图形程序,并在您所在的终端上显示窗口。
您可以通过/etc/ssh/sshd_config文件配置sshd(这是我的Kubuntu机器上的位置)。 在这里,您可以禁用root访问,较旧的协议,X11转发等。 概念是,您对远程访问的限制越多,您的系统就越能免受潜在的攻击。 如果您计划将sshd暴露给互联网,您可能还需要调整您的hosts.allow和hosts.deny文件。 关于加固服务器和ssh的指南很多,因此我将不做详细介绍。
要使一切启动并运行,您需要做的是安装sshd。 在Ubuntu中,这意味着openssh-server软件包。 对于外部访问,您还需要在路由器/防火墙中启用端口22的端口转发,并找到您的外部IP。 现在,您应该能够使用您的普通用户凭据登录到您的机器。
$ ssh user@192.168.1.100 user@192.168.1.200's password:
输入密码后,您现在应该具有对远程系统的完全访问权限。
方便的scp命令,安全复制,以非常相似的方式工作。 要将文件test.txt复制到用户的远程主目录,只需输入
$ scp test.txt user@192.168.1.100:
与之前一样,系统将提示您输入密码。 您也可以反向复制。 以下命令演示了如何将具有绝对路径(即不在用户主目录中)的文件复制到本地计算机。
$ scp user@192.168.1.100:/var/log/messages remote-messages
这两个命令意味着您可以浏览文件系统,并在机器之间自由复制文件。 sshfs所做的是将此功能公开为一个您可以挂载的文件系统。 在我们研究如何操作之前,让我们快速看一下sshfs。
sshfs使用FUSE实现,并依靠ssh的sftp部分来访问远程计算机。 作为远程文件访问协议,sshfs并不是很好。 例如,多个用户同时写入同一文件可能会造成混乱。 优点是固有的安全性以及易于设置。
那么,如何使用它。 让我们看一个非常简短的演示。
$ sshfs user@192.168.1.100: remote-home $ ls remote-home Desktop Documents Downloads Music $ fusermount -u remote-home
最初的sshfs命令将用户的主目录挂载到remote-home。 您可以在冒号后指定另一个路径以挂载远程文件系统的任何其他部分。 访问仅受用户访问权限的限制。
使用ls或任何其他普通命令,将像本地挂载远程主目录一样工作。 所有工具都可以工作。 例如,您可以登录到远程计算机,并使用本地安装的构建工具设置来构建软件。
要卸载文件系统,请使用FUSE实用程序包中的fusermount命令。
总而言之,sshfs是一种易于设置的远程文件访问工具。 如果涉及多个用户,则需要谨慎使用。 它可以非常轻松地临时访问远程文件系统,以及从虚拟机挂载文件系统,从而更轻松地进行访问和监视,以及进行远程安装,编译和调试。 总而言之,这是我始终放在工具箱中的工具之一。