大家都知道,一个悠久的历史故事,使用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 5698 瞬间移动 数学

    瞬间移动 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5698 Description 有一个无限大的矩形,初始时你在左上角(即第一行第一列),每次 ...

  2. javascript小记-javascript运行机制

    任何语言的运行过程中,都会有编译和执行: 对于传统编译型语言来说,编译步骤分为:词法分析.语法分析.语义检查.代码优化和字节生成.但对于解释型语言来说,通过词法分析和语法分析得到语法树后,就可以开始解 ...

  3. OBD-II Protocol -- SAE J1850 VPW PWM

    http://www.auto-diagnostics.info/j1850 j1850 The SAE J1850 bus bus is used for diagnostics and data ...

  4. PostgreSQL SystemTap on Linux 转

    PostgreSQL 支持动态跟踪, 可以通过dtrace或者systemtap工具统计相关探针的信息. 安装systemtap yum install systemtap kernel-debugi ...

  5. 无法打开文件“atlsd.lib”

    问题: vs2013编译c++代码,错误 15 error LNK1104: 无法打开文件“atlsd.lib” 解决: 在你电脑或者其他人电脑上搜索atlsd.lib,将其拷贝到D:\Program ...

  6. Ext.state.Manager.setProvider(new Ext.state.CookieProvider())

    Ext.state.Manager.setProvider(new Ext.state.CookieProvider()) 初始化Ext状态管理器,在Cookie中记录用户的操作状态,如果不启用,象刷 ...

  7. SpreadSheet数据导出为DataTable z

    devexpress也提供了一种将excel数据,而且可以指定区域进行转换,用起来相当灵活,本人将其解决方法分享如下(代码):          private DataTable export(Wo ...

  8. CentOS 6.5安装配置Nginx

    Ubuntu下安装nginx,直接apt-get install nginx就行了,很方便. 但是今天装了CentOS6.5,直接yum install nginx不行,要先处理下源,下面是安装完整流 ...

  9. 500 OOPS: vsftpd: cannot locate user specified in 'chown_username':whoever

    错误:500 OOPS: vsftpd: cannot locate user specified in 'chown_username':whoever解决方案:在vsftpd.conf中修改如下两 ...

  10. 【BZOJ】【3489】A simple rmq problem

    KD-Tree(乱搞) Orz zyf教给蒟蒻做法 蒟蒻并不会这题正解……(可持久化树套树?...Orz 对于每个点,我们可以求出pre[i],nex[i],那么询问的答案就是:求max (a[i]) ...