注意:树莓派系列的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,然后会提示你输入密码,这个密码就是刚才设置的密码,这样之后就登陆了,看下面界面截图:

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

总结

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

参考

RPi VNC Server - eLinux.org

完!

2016年4月

树莓派开发系列教程3--ssh、vnc远程访问的更多相关文章

  1. 树莓派开发系列教程2--树莓派3B介绍及系统烧写、基本配置

    注意:树莓派系列的3篇文章里面的图片因为博客转移过程丢失了,非常抱歉 前言 树莓派系列里涉及到需要额外电脑来协助处理的部分(如烧写系统,远程访问等等),统一在运行着Ubuntu15系统的mac air ...

  2. 树莓派开发系列教程3——树莓派rasp-config配置(转)

    经过前面两步我们的树莓派已经正常的工作起来了,但是在真正用它开发之前还需要进行一些列的配置以及软件的安装,这样开发起来才会得心应手,下面我们介绍一下常用的软件和服务 1.配置选项: 树莓派第一次使用的 ...

  3. C#微信公众号开发系列教程三(消息体签名及加解密)

    http://www.cnblogs.com/zskbll/p/4139039.html C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试) C ...

  4. C#微信公众号开发系列教程二(新手接入指南)

    http://www.cnblogs.com/zskbll/p/4093954.html 此系列前面已经更新了两篇博文了,都是微信开发的前期准备工作,现在切入正题,本篇讲解新手接入的步骤与方法,大神可 ...

  5. 微信公众号开发系列教程一(调试环境部署续:vs远程调试)

    http://www.cnblogs.com/zskbll/p/4080328.html 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试 ...

  6. C#微信公众号开发系列教程六(被动回复与上传下载多媒体文件)

    微信公众号开发系列教程一(调试环境部署) 微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) C#微信公众号开发系列教程三(消息体签名及加解密) C ...

  7. C#微信公众号开发系列教程五(接收事件推送与消息排重)

    微信公众号开发系列教程一(调试环境部署) 微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) C#微信公众号开发系列教程三(消息体签名及加解密) C ...

  8. C#微信公众号开发系列教程四(接收普通消息)

    微信公众号开发系列教程一(调试环境部署) 微信公众号开发系列教程一(调试环境部署续:vs远程调试) C#微信公众号开发系列教程二(新手接入指南) C#微信公众号开发系列教程三(消息体签名及加解密) C ...

  9. EcShop二次开发系列教程–总纲

    EcShop作为老牌的B2C独立网店系统,功能非常全名,强大的文件.数据库缓存机制,保证前后台系统执行速度更快.系统平稳运行.但是过多的功能也或多或少的会影响到系统的整个效率,所有在使用EcShop搭 ...

随机推荐

  1. C#使用 SharpSSH

    准备试一把监控Linux机器 . 附件如下 :http://files.cnblogs.com/files/lclblog/Tamir.SharpSsh.zip

  2. SWERC2015-I Text Processor

    题意 给一个长度为\(n\)的字符串\(s\),再给定一个\(w\),问对于所有的\(i\in [1,n-w+1]\),\(s[i..i+w-1]\)有多少个不同字串.\(n,w\le 10^5\). ...

  3. bzoj4798[CEOI2015] Calvinball championship

    这年头,n方跑1万的题已经不多了... 题意 bzoj4798 不知道怎么叙述这个题意... 分析 如果某个序列字典序小于给定的序列,我们不妨考虑从左到右第一个小于给定的序列的位置,并枚举这个位置的数 ...

  4. Java虚拟机内存模型和volatile型变量

    Java虚拟机内存模型 了解Java虚拟机的内存模型,有助于我们明白为什么会发生线程安全问题. 上面这幅图是<深入理解Java虚拟机-JVM高级特性与最佳实践>的书中截图. 线程共享的变量 ...

  5. P4551 最长异或路径

    题目描述 给定一棵 nnn 个点的带权树,结点下标从 111 开始到 NNN .寻找树中找两个结点,求最长的异或路径. 异或路径指的是指两个结点之间唯一路径上的所有边权的异或. 输入输出格式 输入格式 ...

  6. BZOJ3524 & LOJ2432:[POI2014]代理商Couriers——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=3524 https://loj.ac/problem/2432 给一个长度为n的序列a.1≤a[i] ...

  7. 关于在VWmare下安装Redhat

    本文是小白博主自行摸索安装的过程,下文主要是给出几篇很有用的文章出处和自己遇到的问题. 一.关于安装包 对于安装包,个人建议是去官网下载(个人安装的是rhel 7.4),可能初接触Linux时,是不是 ...

  8. C++——内存对象 禁止产生堆对象 禁止产生栈对象

    用C或C++写程序,需要更多地关注内存,这不仅仅是因为内存的分配是否合理直接影响着程序的效率和性能,更为主要的是,当我们操作内存的时候一不小心就会出现问题,而且很多时候,这些问题都是不易发觉的,比如内 ...

  9. maven 启动 tomcat 及 跳过 test 安装

    1.先在pom文件中配置 tomcat插件 <!-- 文件上传组件 --> <dependency> <groupId>commons-fileupload< ...

  10. jsonP 后台写法 及 层级树型数据递归查询

    Controller层: package com.taotao.rest.controller; import org.springframework.beans.factory.annotation ...