用户口令验证不是简单的口令验证,实际上也用到了非对称公钥私钥的通讯
传统方式口令方式验证
把gk方式验证,就不需要每次登陆输入密码了
首先要实现gk验证要在自己的主机上生成一对钥匙
ssh-copy-id -i 会自动的把公钥拷贝过去
写的是私钥但是仍然命令拷贝的是公钥
这样密码就不用输入了
gk验证是生产中必要的工作
实现里就可以在很多台机器执行一个口令,遍历ip
用expect,gk验证实现批量操作
互相gk验证,不需要互相输入密码/
生成秘钥,所有的机器各自生成密钥对
本机的机器上就生成了 authorized_keys文件
在所有的机器上执行命令,复制公钥到7
7上有所有的公钥,再把这个文件拷贝到其他主机上,就都有各自的公钥了
这样就都实现了gk验证了,不需要输入密码了
还有一种方法,可以用一把钥匙,所有机器都通用
把公钥复制到各个机器上
这样就实现每个机器都用一个公钥了
**三台主机实现key验证
1。ssh-keygen 生成一对钥匙
2.ssh-copy-id A 链接自己 (相当于自己的公钥信任自己)
3.scp -rp /root/.ssh b:/root/.ssh 复制到其他机器上
scp -rp /root/.ssh a:/root/.ssh
**
没输入密码,如果别人偷走了你的私钥,别人就可以冒充你连接,所以单单通过权限来保证私钥文件的安全是效果差的,可以考虑加密私钥
加密过的私钥
一旦加密完,要想实现key验证
但是这样要显示,回到输入密码,输入的口令是私钥的口令,不是机器的口令
可以启用代理帮你记录输入口令
先运行ssh-agent bash
ssh -add启用代理
但是每次启动的时候需要启动,就不用输入的,退出就需要重新输入
大部分情况下,在家里链接服务器,希望在自己的windows进行key验证
实现key验证,点击生成向导
公钥导出传到服务器上
重定向到这个文件
选择链接方式
基于key验证登录
secure crt也是一样新建向导
选择第一项生成的格式不一样
补一个换行
捡来想要链接服务器,就可以把生成的公钥私钥拷贝U盘里,指明路径就可以了
假设管理企业一百台机器,实现自动运维,先把自己的公钥推送到100太电脑上
安装expect
可以写在脚本里
就可以登录到各个机器
光改密码没用,别忘了把key重新生成一边