5.1 KiB
如何在家中使用 SSH 和 SFTP 协议
通过 SSH 和 SFTP 协议 ,我们能够访问其他设备 ,有效而且安全的传输文件及更多 。
多年前 ,我决定配置一个额外的电脑 ,以便我能在工作时能够访问它来传输我所需要的文件 。最基本的一步是要求你的网络提供商 ( ISP )提供一个固定的地址 ( IP Address )。
保证你系统的访问是安全的 ,这是一个不必要但很重要的步骤 。在此种特殊情况下 ,我计划只在工作的时候能够访问它 。所以我能够约束访问的 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 grego@192.168.1.234
对于用更简单的方法来把一个文件传输到另一个文件 ,我有很强烈的需求 。相对于闪存棒和额外的设备 ,它更加方便 ,耗时更少 。
一旦连接建立成功 ,SFTP 有两个基本的命令 ,get
,从主机接收文件 ;put
,向主机发送文件 。在客户端 ,我经常移动到我想接收或者传输的文件夹下 ,在开始连接之前 。在连接之后 ,你将在顶层目录 home/gregp 。一旦连接成功 ,你将和在客户端一样的使用 cd
,除非在主机上你改变了你的工作路径 。你会需要用 ls
来确认你的位置 。
在客户端 ,如果你想改变工作路劲 。用 lcd
命令 ( local change directory)。相同的 ,用 lls
来显示客户端工作目录的内容 。
如果你不喜欢主机工作目录的名字时 ,你该怎么办 ?用 mkdir
在主机上创建一个新的文件夹 。或者将整个文件全拷贝到主机 :
put -r thisDir/
在主机上创建文件夹和传输文件以及子文件夹是非常快速的 ,能达到硬件的上限 。在网络传输的过程中不会遇到瓶颈 。查看 SFTP 能够使用的功能 ,查看 :
man sftp
在我的电脑上我也可以在 windows 虚拟机上用 SFTP ,另一个优势是配置一个虚拟机而不是一个双系统 。这让我能够在系统的 Linux 部分移入或者移出文件 。到目前为止 ,我只用了 windows 的客户端 。
你能够进入到任何通过无线或者 WIFI 连接到你路由器的设备 。暂时 ,我使用一个叫做 SSHDroid 的应用 ,能够在被动模式下运行 SSH 。换句话来说 ,你能够用你的电脑访问作为主机的 Android 设备 。近来我还发现了另外一个应用 ,Admin Hands ,不管你的客户端是桌面还是手机 ,都能使用 SSH 或者 SFTP 操作 。这个应用对于备份和手机分享照片是极好的 。
via: https://opensource.com/article/18/10/ssh-sftp-home-network
作者:Geg Pittman 选题:lujun9972 译者:singledo 校对:校对者ID