SSH免密登录
1.什么是免密登录或用法?
SSH免密登录是指在远程登录服务器时,不需要输入账户密码,而是通过之前配置好的公钥和私钥对来进行验证,从而实现自动登录的过程
2.根据之前学过的,也可以通过ansible进行远程登录,但有弊端。
第一种:命令中指定用户名并提示输入密码。
例如:ansible 192.168.10.102 -a “ip a” -u -root -k
缺点:每次都要输入密码,不方便
第二种:将口令信息写入主机清单。
缺点:密码用明文显示,不安全
那如何让ansible管理各节点主机时,既简便,又安全呢?我们可以使用SSH密钥对登录验证模式
3.免密登录的原理
4.SSH密钥对登录验证模式
第一步:本地生成密钥对文件(例如:要从A免密登录到B,就在A生成密钥对文件)
运行ssh-keygen -t rsa -b 2048
-t 指定加密类型(rsa/dsa等)
-b 指定对加密长度
查看密钥存放的位置(当前用户家目录下的.ssh/目录下)
id_rsa:私钥文件
is_rsa.pub:存放公钥文件
known_hosts:已访问过的主机的公钥文件
第二步:将公钥发送给远程主机
运行:ssh-copt-id 用户名@服务器IP地址
该用户名和要用来登录的服务器的用户名一致
查看:A的/.ssh/id_rsa.pub = B的/.ssh/authorized_keys
也就是说,A主机的公钥文件和B主机收到的公钥一样
验证:A使用ssh命令远程登录到B
ssh zs@192.168.1.102
如果是第一次登录,需要输入登录密码,后面再次登录就不再输入密码了
第三步:修改ansible主机清单,隐藏用户密码