2.1.4 使用SSH远程登录
有时你可能想要远程连接一台树莓派设备。在树莓派上使用远程登录非常简单,因为底层的UNIX系统提供了大量的远程连接工具。
在现在的互联网远程连接工具中,使用最多的应该就是SSH了。SSH凭借独特的加密特性取代了telnet和rlogin。在第一次初始化完成后,你可以很容易建立一个加密连接。需要注意的是,在使用SSH之前,你应该先使用passwd修改默认的树莓派密码。
可能在你现在的设备上SSH服务还没有被打开,那么你应该输入“sudo raspiconfig”,然后打开SSH服务,再用ifconfig命令查看当前的IP地址,就可以连接到树莓派了。
在一台基于UNIX系统的计算机上,可以直接通过命令行里的ssh命令进行连接。假设IP地址是192.168.0.20,那么只需要先输入“ssh pi@192.168.0.20”再输入密码即可。在Windows上,可以使用openssh客户端或者早期的PuTTY;在安卓上,可以使用ConnectBot或Termux。
你可以在树莓派上检查SSH是否正常工作。如果没有,可以开启SSH服务。出于安全因素考虑,应该生成自己的密钥,然后确保不要把私钥分享给别人,如图2-4所示。
图2-4
经过上面这些步骤以后,你应该已经通过SSH连接到树莓派上了。如果没有连接成功,可以通过在树莓派上输入“ssh@localhost”来验证SSH服务,同时检查网络设置。
现在已经可以通过局域网里的另一台设备访问树莓派了,接下来更改一些配置使得SSH远程连接更加安全。首先,需要修改配置文件/etc/ssh/sshd_config,把其中的PermitRootLogin yes改为PermitRootLogin no;接下来,输入“sudo service ssh reload”重启服务,禁止用户以root账户登录。注意ssh_config与sshd_config的区别:前者是客户端的配置文件,后者是守护进程的配置文件。你还可以将ssh端口换成其他数字,但是要记住在以后连接的时候要指定连接的端口,比如ssh -p 12123。
如果你想要通过互联网访问树莓派,就需要一个公网IP地址。一般情况下,如果是通过ADSL路由器上网,就可能是没有公网IP的。这时可能需要像花生壳这样的内网穿透服务(详细操作可以查看花生壳的官网:https://hsk.oray.com/)。
想要与树莓派进行远程文件的复制分享也很简单,只要使用scp命令即可:
scp pi@192.168.0.2:/home/pi/testfile1 .
这条命令的意思是从树莓派上复制一个文件到当前目录。使用SCP时,也可以一同使用通配符以及-r选项,后者可以让你递归地复制文件夹内的所有项。
注意
使用FTP已经不安全,建议不要使用。