入门SSH原理

ssh的相关实现有unix/linux下的openssh以及windows下的putty。

登录方式之一:口令方式

通常所说的账号密码的形式

1)client发送请求

2)server将自己的公钥发给client(client会记录相关server的公钥,存放地点是自己的~/.ssh/known_hosts文件中)

3)client将自己的密码使用server的公钥加密后发给server

4)server用自己的私钥解密client的密码,从而实现对client登录的管理。


这种方式会受到“中间人攻击”,中间人可以在骗取client的密码后再去欺骗式登录server。


登录方式二:密钥方式

1)client将自己的公钥放到server上(~/.ssh/authorized_keys文件),从而获得授权。

2)client发含有自己公钥的请求

3)server判断client的公钥是否属于授权client。属于的话,server会接着测试client的公私钥对:用client的公钥加密message给client,client用私钥解密message后返回server。

这样通过测试client的公私玥对来实现对client登录的管理。


第二种方式规避了“中间人攻击”,也就是说中间人不可能同时欺骗client和server,因为中间人无法获取到client的私钥。但是中间人可以骗到client,原因和第一种方式是一样的:client无法判断收到的server的公钥的真假。


我们在登录ssh server时,第一次都会弹出一个"Are you sure you want to continue connecting (yes/no)?",其实这就是将真假的判断的重任甩给用户自己了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值