大家都知道,一个悠久的历史故事,使用SSH密钥对就可以不用密码登陆远程计算机。经典资料也是不少,不过那些资料对新学者可是有点太不象人话了,不好理解。所以本文试图用更人性一点的语言解释,并演示如何在Mac之间实现。

不得已,还得先说说术语。SSH密钥对,说白了就是一对锁和钥匙。密钥对之所以说是"对",那是因为它是由叫做公有和私有两个密钥组成,而且是一对一的一对,它们最初是由随机产生的一对质数生成的-具体深度的技术细节要牵扯到数学,头大的很。目前来说,针对世界上99.99%的盗贼,基本是不可能破解的,也就是无法通过共有密钥,来反推出私有密钥的内容。总之吧,记住:公有密钥是可以公开给任何人的,而私有密钥是要自己保存好的;所以,把它们当作一把钥匙开一把锁。

通过工具,可以制作一把钥匙(私有密钥)和一把锁(公有密钥),这个锁只能使用这一把把钥匙打开,在计算机这个可以自由复制的世界里,钥匙和锁都可以复制,如果你好好保管,不把钥匙丢失/公开,那么锁做多少把都无所谓,反正就是这一把钥匙可以开,也就是说,咱可以给要控制的所有计算机都安装这把锁的复制品,那么用这一把钥匙就可以控制这些计算机了。有的时候为了安全,你还可以给这把钥匙加上一个暗号(passphrass),暗号不对,这把钥匙也没法使用。

计算机系统就如同一座防卫森严的城堡,它的围墙根,有个正门(登录窗口服务),是让人们正常进入的通道,那儿有个门卫(登陆验证程序)让你出示证件(用户名和密码);有时,门卫需要打电话给大管家,确认你的身份(网络用户登陆),因为通行证/路牌可以被盗/泄露,但是城墙内的那个管家只有一个,它认识所有被准许进入的人,管家一看,Ok就是这个人了,门卫才让你进,如果电话故障不通,你也从来没有来过留下指纹,就不让你进;有的时候一看就是本地熟人(本地帐户),打声招呼欧了,就让你进门去了;而本地熟人这个路数很容易出现问题,门卫可能被收买或者易容术骗过门卫。

为什么要用SSH密钥就可以不用密码登陆其它计算机呢?那是因为,你或者任何有足够权利的人(大管家自己或者大管家的替身)-在那个计算机的一面墙(ssh服务)上,安装了一道门(authorized_keys),在这个门上安装了锁,这个锁就是你的公有密钥,你拿着自己的那把钥匙-私有密钥,如果这把钥匙设置了暗号,那么在使用钥匙时你先要对上暗号-嘛哩嘛哩哄,打开这把锁,推开门就进去了。另外一个人-如果又足够权限,也可以安装自己的一个门和锁,用自己的钥匙开锁也可以进去。

一般来说,开SSH进去的路,都是区区弯弯的小路,不象正门,大道两旁灯火通明的,有会客室,有大厅,有厢房,人来人往的,你动动嘴就有衙役跟班的帮你四处行走,把事给办了;而SSH的小路,办什么事都要自己亲自去做,比较累,不过有些事情只要是mo men办起来也特别顺利,。

所以,计算机是否安全不能光看墙有多高,布满电网,拉着带刺铁丝网的,看上去挺吓人的。笨的去剪铁丝网,扛着大炮轰(暴力破解),巧的的找窍门,找到门就好说了。所以是否安全,主要看你墙上有多少门,每个门和门锁是否都足够安全。话说远了。

OSX: SSH密钥使用日记(1)的更多相关文章

  1. OSX: SSH密钥使用日记(2)

    准备钥匙和锁(密钥对): $ pwd /Users/test $ ssh-keygen -t dsa -C "$(whoami)@$(hostname),$(date '+%F %T')&q ...

  2. 转载 :配置ssh密钥认证自动登录

    原文地址 :https://segmentfault.com/a/1190000000481249 在客户端来看,SSH提供两种级别的安全验证.[摘自wikipedia] 第一种级别(基于密码的安全验 ...

  3. 《Ansible权威指南》笔记(1)——安装,ssh密钥登陆,命令

    2016-12-23 读这本<Ansible权威指南>学习ansible,根据本书内容和网上的各种文档,以及经过自己测试,写出以下笔记.另,这本书内容很好,但印刷错误比较多,作者说第二版会 ...

  4. 多个网站使用不同的SSH密钥登陆(zz)

    多个网站使用不同的SSH密钥登陆   1.创建不同的SSH密钥, -t指定加密方法,RSA或DSA:-C注释:-f指定文件名   www.2cto.com   ssh-keygen -t dsa -C ...

  5. 烂泥:学习ssh之ssh密钥随身携带

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 在上一篇文章<烂泥:学习ssh之ssh无密码登陆>中,我们讲解了如何使用ssh密钥,免密码登陆服务器. 这篇文章我们再来讲解,如何把已经生成的 ...

  6. 添加SSH密钥到GitHub

    $ clip < ~/.ssh/id_rsa.pubbash: /c/Users/UsersName/.ssh/id_rsa.pub: No such file or directory [转] ...

  7. 使用SSH密钥连接Github

    使用Github,也许大家觉得比较麻烦的就是在每次push的时候,都需要输入用户名和密码.如果使用SSH,就可以记住用户名,并创建属于自己 的密码来保证安全操作,还有神奇的一招可以“不用输入密码”哦. ...

  8. [转] SSH 密钥认证机制

    使用 RSA 密钥对进行 SSH 登录验证 使用 RSA 密钥对验证 SSH 的优点是 1) 不用打密码 2) 比密码验证更安全:缺点是 1) 第一次配置的时候有点麻烦 2) 私钥需要小心保存.Any ...

  9. git使用ssh密钥和https两种认证方式汇总(转)

    在版本库的SSH方式和HTTPS方式是不同的,具体来说就是url信息的不同,但是,实际的认证机制也是不同的.当建立了本机密钥之后,使用ssh方式实际上是不需要再次认证的,而https则每次需要输入密码 ...

随机推荐

  1. HDU 5683 zxa and xor 暴力模拟

    zxa and xor 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5683 Description zxa had a great interes ...

  2. hdu 1150 Machine Schedule 最少点覆盖

    Machine Schedule Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php? ...

  3. SQL 死锁进程查询

    use master go declare @spid int,@bl int DECLARE s_cur CURSOR FOR ,blocked ) a ) b where a.blocked=sp ...

  4. SVN 提交回滚

    取消对代码的修改分为两种情况:   第一种情况:改动没有被提交(commit). 这种情况下,使用svn revert就能取消之前的修改. svn revert用法如下: # svn revert [ ...

  5. Properties属性操作

    package com.properties; import java.io.FileInputStream; import java.io.FileOutputStream; import java ...

  6. 详解Object.constructor

    对象的constructor属性引用了该对象的构造函数.对于 Object 对象,该指针指向原始的 Object() 函数.如下: var obj = {}; obj.constructor //ƒ ...

  7. mysql 连接出错 'mysqladmin flush-hosts'

    本文章 转载于: http://blog.itechol.com/space-33-do-blog-id-5670.html    求助QQ:499628121   环境说明:   内网测试服务器19 ...

  8. 使用Facade模式更新库存、确认订单、采取打折、确认支付、完成支付、物流配送

    Facade模式对外提供了统一的接口,而隐藏了内部细节.在网上购物的场景中,当点击提交订单按钮,与此订单相关的库存.订单确认.折扣.确认支付.完成支付.物流配送等都要做相应的动作.本篇尝试使用Faca ...

  9. 【docker】centOS7上部署的mysql和spring boot服务,要求,mysql的时间、java程序服务的时间和宿主机的时间完全保持一致【修改mysql时区,临时和永久】【修改spring boot配置文件时区】【修改docker启动spring boot实例程序时区】

    要求:centOS7上部署的mysql和spring boot服务,要求,mysql的时间.java程序服务的时间和宿主机的时间完全保持一致: ============================ ...

  10. 算法:非平衡二叉搜索树(UnBalanced Binary Search Tree)

    背景 很多场景下都需要将元素存储到已排序的集合中.用数组来存储,搜索效率非常高: O(log n),但是插入效率比较低:O(n).用链表来存储,插入效率和搜索效率都比较低:O(n).如何能提供插入和搜 ...