SSH 原理简介及使用教程

SSH 原理简介及使用教程

1,SSH原理

 简单来说,SSH是一种网络协议,用于计算机之间的加密登陆。假定本地主机的名字是localhost,远程主机的名字是cloudhost。现在要从localhost登陆cloudhost,如果使用SSH协议,则被认为是安全的。

登陆过程如下:

序号动作说明
1远程主机cloudhost收到本地主机localhost的的登陆请求,把自己的公钥分发给用户公钥由远程主机制作,由远程主机分发给本地主机
2本地主机localhost使用得到的公钥加密登陆密码,发给远程主机cloudhost本地主机发给远程主机的是公钥加密过的登陆密码
3远程主机cloudhost使用自己的私钥解密登陆密码,如果密码正确,同意登陆远程主机使用私钥解密得到登陆密码,与正确密码比对。正确密码由远程主机设置

 当本地主机localhost得到的公钥不是来自远程主机cloudhost,而是来自第三者,但被误认为来自远程主机cloudhost时,本地主机的登陆操作会泄露密码,遭到中间人攻击。

 SSH针对中间人攻击,应对如下,第一次登陆时,会弹出如下信息:

$ ssh user@host

  The authenticity of host 'host (12.18.429.21)' can't be established.

  RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.

  Are you sure you want to continue connecting (yes/no)?

 这段话的意思是,无法确定host主机的真实性,只知道它的公钥指纹,请问还要继续连接吗?

 所谓”公钥指纹”,是指公钥长度较长(这里采用RSA算法,长达1024位),很难比对,所以对其进行MD5计算,将它变成一个128位的指纹。上例中是98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d,再进行比较,就容易多了。 这时,需要远程主机在自己的网站上贴出公钥指纹,本地主机才能进行比对。

2,SSH登陆方式

 SSH 有两种登陆方式,分别是口令登陆和公钥登陆,后者又称免密码登陆。

 对于口令登陆,在经历过上文叙述,比对过公钥指纹,接受远程主机的公钥后,远程主机就就会保存在.ssh/known_hosts之中,下次再连接这台主机后,系统就会认出它的公钥已经保存在本地了,从而跳过警告部分,直接提示输入密码。

 每个SSH用户都有自己的known_hosts文件,此外系统也有一个这样的文件,通是/etc/ssh/ssh_known_hosts,保存一些对所有用户都可信赖的远程主机的公钥。

 对于公钥登陆方式,则是用户把自己的公钥存储在远程主机上。登陆的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发送回来,远程主机用实现存储的公钥进行解密,如果成功,则证明用户是可信的,直接允许登陆,不再要求密码。远程主机会将本地主机的公钥,保存在authorized_keys文件中。

2,设置

步骤如下:

步骤代码说明
1ssh-keygen -t rsa生成公钥和私钥
2ssh-copy-id user@10.124.84.20将公钥上传到远程主机上,并写入authorized_keys文件中

强调:.ssh目录的权限为700,其下文件authorized_keys和私钥的权限为600。否则会因为权限问题导致无法免密码登录。

3,总结
登陆方式公钥私钥制作者分发方向加密解密
口令登陆远程主机远程主机分发公钥到本地主机本地主机公钥加密远程主机私钥解密
公钥登陆本地主机本地主机分发公钥到远程主机本地主机私钥加密远程主机公钥解密
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值