树莓派开发系列教程3--ssh、vnc远程访问

注意:树莓派系列的3篇文章里面的图片因为博客转移过程丢失了,非常抱歉

前言

  远程访问有很多种方式可以实现。比如ssh、telnet、ftp、samba、远程桌面等等,各有优缺点。本文主要以ssh和远程桌面的方式进行介绍。

ssh访问方式

  这种方式是非图形界面的远程访问,是在终端下的远程访问方式。该访问方式的安全由密钥对这种非对称加密方式来保证。默认情况下,Raspbian系统已经开启了ssh服务(如果没有开启,可以通过raspi-config来开启,可以通过netstat -antp 来查看ssh是否开启),而且端口为22,因此我们可以直接通过下面命令远程登陆:

ssh pi@192.168.1.112

上面命令执行完后会要求输入pi的密码。如果你没修改过密码,那么就会是默认的raspberry,否则输入你修改后的密码即可正确登陆上。这种方式每次都要求输入密码,挺麻烦的,我们可以通过下面的配置实现无需输入密码登陆。

首先得在ubuntu系统里创建一个密钥对,如果之前已经创建过,那么可以跳过这一步。执行下面命令用于创建密钥对:

ssh-keygen -t rsa

如果想指定一个名字xxx,可以执行

ssh-keygen -t rsa -f xxx (这种方式生成的密钥对在当前目录下,需要拷贝到~/.ssh/下)

执行后,会提示是否对私有添加一个密码,一般情况下可以不用,所以一直回车下去就可以了,最终会在~/.ssh/下创建一对秘钥(xxx和xxx.pub)。有了密钥对后,我们还得做一个动作就可以实现无需输入密码登陆了。执行下面命令:

ssh-copy-id -i ~/.ssh/admin.pub pi@192.168.1.112

如果你没有通过-f指定名字,那么上面命令可以简化为

ssh-copy-id pi@192.168.1.112

如果你没有通过-f指定名字,那么应该可以通过下面命令直接登陆了

ssh pi@192.168.1.112 

如果你通过-f指定过名字,那么需要通过下面命令指定使用哪一个秘钥来直接登陆

ssh -i ~/.ssh/xxx pi@192.168.1.112

有些人可能觉得用-f指定名字后,增加了一堆操作,自找麻烦。其实这和每个人的环境有关,有些人需要通过ssh访问很多东西,比如gitlab、vps主机等等,如果都用同一个密钥对,可能会觉得不安全,不要把鸡蛋放在同一个篮子里的道理大家都懂的。然而如果你没有安全方面的需求,那么用同一个密钥对就可以了,再说即使不同的密钥对,放在同一主机上也是不安全的,对吧!如果真要为安全考虑,那应该将它们放到u盘上,再对其做个加密^_^

经过了上面的配置,一个命令就直接登陆了,已经很方便吧,但是如果你还是觉得命令太长,想简单点,那么继续往下看

我们可以在ubuntu系统的~/.ssh目录下创建一个config文件,里面添加如下内容:

host pi
user pi
hostname 192.168.1.112
port 22
IdentityFile ~/.ssh/admin

这里需要说明一下,host pi这里大家可以随意修改pi为任意字串,最终登陆的命令行上会用到它。user pi指定通过远程的哪个账号登陆。hostname指定远程树莓派的ip,这里改为域名也行。port 指定端口。IdentityFile字段最重要了,指定用哪个秘钥。

通过上面的配置,在命令行上输入:

ssh pi

就可以直接登陆了。ssh的原理以及上面这些操作都是什么意思我没有详细说明,真要写的话,估计得另开一篇博文专门讲解了。

远程桌面

  这种方式是以图形界面操作方式访问远程树莓派,远程系统的界面直接呈现在我们电脑上,类似于windows下的远程桌面。这种方式需要远程树莓派系统和本地ubuntu系统都安装相关软件,这里我们以VNC这种远程桌面软件来讲解。
  先ssh到远程树莓派系统,安装软件vnc服务端软件。执行下面命令:

sudo apt-get install tightvncserver

安装完后,再执行tightvncserver来配置下,主要是配置下远程客户端访问时的密码,后面的Would you like to enter a view-only password (y/n)?输入n就可以了。配置完后,会打印出如下信息:

New 'X' desktop is raspberrypi:1

Creating default startup script /home/pi/.vnc/xstartup
Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspberrypi:1.log

里面有一个关键字段raspberrypi:1告诉我们是在:1上,客户端访问时需要用到。

  ubuntu下通过安装VNC客户端来实现远程桌面访问树莓派,执行下面命令来安装vnc客户端

sudo apt-get install xtightvncviewer

安装完后,执行vncviewer就会弹出一个窗口,输入192.168.1.122:1,然后会提示你输入密码,这个密码就是刚才设置的密码,这样之后就登陆了,看下面界面截图:

vnc登陆图片

操作起来就好像你坐在接了显示器的树莓派电脑前一样^_^

总结

  ssh的访问方式可能对于没用习惯命令行的人来说不太适应,但是它没有远程桌面方式对网络的高要求问题,网速太慢的话,远程桌面方式会很卡。总的来说,它们的操作都不受限制,能做pi用户在本地端能做的任何事情。

参考

RPi VNC Server - eLinux.org

完!
2016年4月

posted @ 2017-10-14 10:20 rongpmcu 阅读(...) 评论(...) 编辑 收藏