前几天写了一篇文章关于ssh命令的几个使用小技巧(r11笔记第27天),很多朋友给了不少的建议,其中郭亮同学整理了一篇文章发给我在此表示感谢。 关于ssh免密码登录,总结了3种方法, # 一种推送的方式,也就是在服务器端操作,前提是知道所有免秘登录的服务器用户密码,通过脚本可以读取用户名密码。我写过一个telnet自动登录的脚本,详见附件。 ssh自动登录也可以采用expect语言实现,这个暂未撰写脚本文件,待写中。 # 一种拉取的方式。也就是在客户端进程操作,前提只要知道服务器端一个用户密码即可,弊端是需要在所有客户端手动执行。 # 最后一种方式,是通过工具的方式进行远程管理布置,例如ansible,puppet,func等,同时结合自动读取用户名,密码的shell,可以利于日常运维,简化人工成本。 最后,我也提供一个获取服务器负载的案例简单说明。 1.1 客户端操作,一般设置思路: 1.2 服务器端操作,命令方式: 1.3 ssh免秘登录设置好后,可能出现的问题就是,明明已经设置完毕,但是无法免秘登录。 具体现象为:root用户的免秘登录可以,但是普通用户oracle的免秘登录不可以。初步定位于权限问题,网上获取的资源也大多如此。 示例如下,来源于生产环境案例: 目的:从10.150.27.17(GuolDB) 到 10.150.27.20(orcl) 的免秘登录 操作流程如下: -- 10.150.27.17-OpenSSH_7.3p1 1.3.1 ssh-keygen -t rsa -P '' 1.3.2 ssh-copy-id -i /home/oracle/.ssh/id_rsa.pub oracle@10.150.27.20 1.3.3 测试结果如下:ssh 10.150.27.20 date 疑惑,明明设置了免秘登录,为何还需要输入密码。 查阅相关资料,网帖,主要包括 .ssh 目录权限是700 ,authorized_keys 为600 或者644 的权限问题。 再次测试,成功。 -- 根据测试结果,总结如下。 在免秘登录的设置中,需要注意3个地方的权限设置问题,特别是普通用户,如oracle用户家目录的权限设置,这个容易遗漏。 1 .ssh 目录权限是700 , 2 authorized_keys 为600 或者644 3 普通用户家目录的other权限位不能太高,不能有w权限位。 4 具体ssh的秘钥权限文件,目录权限设置和免秘登录的关系,还有待查找ssh的官方资料佐证。 -- 使用ansible 布置ssh免秘登录,在大量server需要布置的情况下,个人建议采用此方式,节约人力成本,同时无需安装agent。 通过远程工具和ssh的免秘登录配置结合,可以扩展运维思路,我现在正在通过此方式设计zabbix无法监控的数据库值班。 ansible+ssh-收集服务器数据入库db-然后分析db中的数据出报告-mail发送给dba或者相关人-历史数据分析。预计春节前完成,届时如果效果不错都成型后,发给你也请你给一些建议。 --附件telnet自动登录服务器,远程执行command操作指令 文件说明: 1 param 用于记录服务器地址,用户,密码 2 cmdlist 用于记录command远程操作指令 3 telnet.sh 用于执行远程指令的脚本,格式"Usage: $0 param cmdlist"
说明:通过ansible收集所有服务器的负载信息uptime.sh,然后插入到信息库中待分析analyze_load.sh后邮件告警或者历史记录分析。 很多朋友 脚本结果如下: Alert :172.16.15.9_uptime_20161228_22:10_load :26.4--22.72--33.71 It is over load 30 ,pls check and notice it.
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/34126.html