每次通过USB转串口登录树莓派比较麻烦,可以设置树莓派开启ssh和vnc服务,以便通过ssh或vnc远程登录树莓派。下面介绍在Debian中通过ssh或vnc远程登录树莓派的过程。
基础知识
SSH
Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。
SSH基本用法
1 | # 以用户名user,登录远程主机host |
SSH通信过程及风险
SSH采用了公钥加密保证安全。
整个过程是这样的:(1)远程主机收到用户的登录请求,把自己的公钥发给用户。(2)用户使用这个公钥,将登录密码加密后,发送回来。(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。
这个过程本身是安全的,但是实施的时候存在”中间人攻击”风险:如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪。因为不像https协议,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。
VNC
VNC(Virtual Network Computing),为一种使用RFB协议的显示屏画面分享及远程操作软件。此软件借由网上,可发送键盘与鼠标的动作及即时的显示屏画面。
VNC与操作系统无关,因此可跨平台使用,例如可用Windows连线到某Linux的计算机,反之亦同。甚至在没有安装客户端程序的计算机中,只要有支持JAVA的浏览器,也可使用。
原理
VNC系统由客户端,服务端和一个协议组成
VNC的服务端目的是分享其所运行机器的屏幕,服务端被动的允许客户端控制它。VNC客户端(或Viewer)观察控制服务端,与服务端交互。VNC协议Protocol(RFB)是一个简单的协议,传送服务端的原始图像到客户端(一个X,Y位置上的正方形的点阵数据),客户端传送事件消息到服务端。
服务器发送小方块的帧缓存给客户端,在最简单的情况,VNC协议使用大量的带宽,因此各种各样的方法被发明出来减少通讯的开支,举例来说,有各种各样的编码方法来决定最有效率的方法来传送这些点阵方块。
VNC默认使用TCP端口5900至5906,而JAVA的VNC客户端使用5800至5806。一个服务端可以在5900端口用“监听模式”连接一个客户端,使用监听模式的一个好处是服务端不需要设置防火墙。
安全性
VNC并非是安全的协议,虽然VNC伺服程序需设置密码才可接受外来连线,且VNC客户端与VNC伺服程序之间的密码传输经过加密,但仍可被轻易的拦截到并使用暴力破解法破解。不过VNC可设计以SSH或VPN传输,以增加安全性。
VNC软件
由于VNC以GPL授权,派生出了几个VNC软件:
- RealVNC:由VNC团队部分成员开发,分为全功能商业版及免费版。
- TightVNC:强调节省带宽使用。
- UltraVNC:加入了TightVNC的部分程序及加强性能的图型映射驱动程序,并结合Active Directory及NTLM的账号密码认证,但仅有Windows版本。
- Vine Viewer:MacOSX的VNC客户端。
配置树莓派支持SSH和VNC
通过USB转串口登录树莓派后,按如下步骤开启SSH和VNC:
- 运行命令raspi-config
1
sudo raspi-config
- 选择第五项Interfacing Options
- 选择enable SSH
- 启用SSH,重复步骤一和二,再选择enable VNC。
通过SSH或VNC连接树莓派
debian主机与树莓派在同一个局域网内,则按如下步骤通过SSH或VNC连接树莓派。
通过nmap命令获取树莓派ip地址
1 | $ nmap 192.168.0.1/24 |
开启22和5900端口的主机即是树莓派。
通过ssh远程登录树莓派
1 | # 首次登录会给出主机认证不能建立的提示,输入yes可继续,再输入用户密码即可远程登录树莓派 |
通过vnc远程登录树莓派
通过ssh登录树莓派后查看其使用的vnc程序
1
2
3$ apt list --installed | grep vnc
realvnc-vnc-server/now 6.3.1.36657 armhf [已安装,可升级至:6.3.2.39069]
# 可知,树莓派上使用realvnc程序在Debian上安装realvnc客户端程序realvnc-vnc-viewer
在终端输入vncviewer,输入树莓派ip、用户名、密码即可登录树莓派
参考文献
- SSH原理与运用(一):远程登录,by 阮一峰.
- Secure Shell,by wikipedia.
- VNC,by wikipedia.
- VPN原理与简单应用,by 新盟-胡巴.