shell脚本中经常会用到免密码登录,要了解ssh则需要理解现代密码学当中的非对称密钥及认证中心处理机制等基础概念
首先说明一下处理机制:
1.非对称密钥就是一对密钥-公钥和私钥。
2.私钥由系统中没个人自己持有,一般保存在自己的电脑里或u盘里。
3.公钥则在网络上传递,就是可以传递给通信中的对方,也就意味这可以被黑客截获。
4.用某个人的私钥加密的数据只有用那个人的公钥解密,同样用公钥加密的数据也只有用私钥解密。
这样我们在信息处理中的应用一般的流程可以是这样:
假设我们有两个消息方a和b
1.a要b发消息,首先得到或者由b传递给a一个b的公钥。
2.然后a用b的公钥加密消息然后传递给b。
3.b用自己的私钥解密消息得到明文。
参考:http://blog.163.com/hbu_lijian/blog/static/126129153200910333623799/
参考:https://www.cnblogs.com/konrad/p/6901273.html
一、创建公钥与私钥
ssh-keygen -t rsa
authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单
二、把本地主机的公钥复制到远程主机的授权列表authorized_keys文件上,并设置相应权限。
方法一:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
ssh-copy-id命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh
, 和~/.ssh/authorized_keys
设置合适的权限。
方法二:
拷贝本地主机的公钥到远程主机: scp id_rsa.pub
将本地主机的公钥加到远程主机的授权列表 .ssh/authorized_keys 若不存在,手动创建: cat id_rsa.pub >> authorized_keys
.ssh目录的权限必须是700 ,chmod 700 .ssh
授权列表authorized_keys的权限必须是600,chmod 600 authorized_keys
扫描二维码关注公众号,回复:
9083349 查看本文章